我有很多包含相同非模型字段的表单。在本示例中,我们将该字段称为 author
。这不是任何模型的字段,只是我想在每个表单中出现的字段。这是我当前代码的一个工作示例:
from django import forms
from . import models
class BlogForm(forms.Form):
author = forms.CharField()
class Meta:
model = models.Blog
fields = ["author"]
class BookForm(forms.Form):
author = forms.CharField()
class Meta:
model = models.Book
fields = ["author"]
所以,很自然地,我认为我可以使用 Python 继承并创建一个包含此字段的可重用“mixin”类。然而,这似乎是不可能的。由于某种原因,我无法执行以下操作:
from django import forms
from . import models
class AuthorMixin:
author = forms.CharField()
class BookForm(AuthorMixin, forms.Form):
class Meta:
model = models.Book
fields = ["author"]
这是我收到的错误:
django.core.exceptions.FieldError: Unknown field(s) (author) specified for Book
如何使用多重继承来编写 Django 表单?
最佳答案
您的 AuthorMixin 类应覆盖 forms.Forms:
class AuthorMixin(forms.Form):
author = forms.CharField()
class BookForm(AuthorMixin, forms.Form):
class Meta:
model = models.Book
fields = ["author"]
关于python - 如何使用多重继承来编写 Django 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66101543/