django - 将 mixin 与 Django 表单类一起使用

标签 django django-forms mixins

我正在考虑创建一个 mixin 表单类,以便我可以将一组通用字段添加到各种非常不同的表单中。仅将其用作基类是行不通的,因为我希望能够使用其他形式作为基类,如下所示:

class NoteFormMixin(object):
    note = forms.CharField()

class MainForm(forms.Form):
    name = forms.CharField()
    age = forms.IntegerField()

class SpecialForm(MainForm, NoteFormMixin):
    favorite_color = forms.CharField()

我唯一的问题是:这是如何工作的?到目前为止,如果我使用 mixin,则它无法识别从该 mixin 设置的字段:
>>> ff1 = SpecialForm()
>>> ff1.fields
{'name': <django.forms.fields.CharField object at 0x178d3110>, 'age': <django.forms.fields.IntegerField object at 0x178d3190>, 'favorite_color': <django.forms.fields.CharField object at 0x178d3210>}

这只是不能做的事情吗?

最佳答案

问题是您的 NoteFormMixin 是从 object 而不是 forms.Form 派生的。你需要把它改成这样:

class NoteFormMixin(forms.Form):
    note = forms.CharField()

关于django - 将 mixin 与 Django 表单类一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7114710/

相关文章:

django - 如何覆盖Django AuthenticationForm输入CSS类?

python - Django Rest Framework 模型序列化程序 : Set all fields to read only except one

Python 3.4 AssertEqual() 在 Django 单元测试中使用时出现不可预测的行为

python - 在 Django 中哪里可以翻译表单字段标签?

java - Mixins 与 Strategies Java

django - ValidationError - Django Q 查询 - 不是有效的 UUID

python - Django:向模型窗体添加一个字段

django - 哪个 Django 模型字段与 CheckboxSelectMultiple 表单字段搭配使用?

twitter-bootstrap - Twitter Bootstrap ".container"类 : How to use it semantically?

grails - Groovy 混合?