假设这是博客的模型:
class Blog(models.Model):
title = models.CharField(max_length=200)
pub_date = models.DateTimeField(default=datetime.now)
creator = models.ForeignKey(User)
content = BleachField()
这是另一种模式:
class Status(models.Model):
content = BleachField()
pub_date = models.DateTimeField(default=datetime.now)
creator = models.ForeignKey(User)
如何覆盖BleachField以针对不同的Textarea小部件使用不同的WYSIWYG编辑器?即,对于Status
,他们将是另一个编辑,而Blog
他们将是另一个。或者可以首先使用不同的WYSIWYG编辑器,然后在模板中使用漂白过滤器:
{% load bleach_tags %}
{{ some_unsafe_content|bleach }
任何帮助将不胜感激!谢谢。
答案 0 :(得分:0)
您可以在定义模型表单时覆盖__init__
方法吗?:
class BlogForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(BlogForm, self).__init__(*args, **kwargs)
self.fields['content'].widget = forms.Textarea
答案 1 :(得分:0)
我遇到了同样的问题。
起初,我在创建自定义char字段方面遇到了麻烦,但后来意识到我可以做到这一点,效果很好:
class BlondeCharField(models.CharField, BleachField):
pass
BleachField只需要覆盖pre_save
...