Skip to main content
 首页 » 编程设计

python之Django之无效的过滤器漂白剂

2024年10月24日33shihaiming

我正在迁移到“bleach”,我遵循了 turoial 中的所有步骤,但是当我在 html 中调用:{{ post.content|bleach }} 时出现错误。我正在使用 Django 1.8 版。同样在我的管理员中,它没有识别出我的 CKeditor。

页面中的错误信息是:

Request Method: GET 
Exception Value:    Invalid filter: 'bleach' 

在服务器的日志中我得到:

/home/ubuntu/workspace/wpage/urls.py:26: RemovedInDjango19Warning: Default value of 'RedirectView.permanent' will change from True to False in Django 1.9. Set an explicit value to silence this warning. 
  url(r'^.*/$', RedirectView.as_view(url='/blog/')), 

这是我的一些文件:

设置.py:

INSTALLED_APPS = ( 
... 
    'django_bleach', 
) 
... 
BLEACH_ALLOWED_ATTRIBUTES = ['href', 'title', 'style'] 
BLEACH_ALLOWED_STYLES = [ 
    'font-family', 'font-weight', 'text-decoration', 'font-variant'] 
BLEACH_STRIP_TAGS = True 
BLEACH_STRIP_COMMENTS = False 
BLEACH_DEFAULT_WIDGET = 'ckeditor.widgets.CKEditorWidget' 

模型.py:

from django.db import models 
from django_bleach.models import BleachField 
class Post(models.Model): 
    ... 
    content = BleachField() 

基础.html:

{% load staticfiles %} 
{% load bootstrap3 %} 
{% load bleach_tags %} 
... 

post.html:

{% extends "base.html" %} 
{% block content %} 
<div> {{ post.content|bleach }} </div> 

请您参考如下方法:

您需要在任何使用 bleach 标签的模板中加载 bleach_tags。将其加载到父模板中是不够的。

{% extends "base.html" %} 
{% load bleach_tags %} 
 
{% block content %} 
<div> {{ post.content|bleach }} </div> 

RemovedInDjango19Warning 是一个完全独立的问题。如消息所述,您可以通过设置显式值将其静音:

RedirectView.as_view(url='/blog/', permanent=False) 

您正在使用的正则表达式 '^.*/$' 将永久重定向以斜杠结尾的每个 url 到/blog/。我很确定你不想那样做。我会删除该模式(或至少设置 permanent=False),直到您对它的工作感到满意并且确定您希望它是永久的。