Django - 无效的过滤器漂白

时间:2015-12-11 15:31:03

标签: python django

我正在迁移到"漂白",我跟踪了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/')),

以下是我的一些文件:

setting.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'

models.py:

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

base.html文件:

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

post.html:

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

1 个答案:

答案 0 :(得分:2)

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

{% extends "base.html" %}
{% load bleach_tags %}

{% block content %}
<div> {{ post.content|bleach }} </div>

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

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

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