# models.py
class modelA(models.Model):
a = models.CharField()
b = models.CharField()
class ModelB(models.Model):
c = models.CharField()
d = models.ForeignKey(modelA)
# forms.py
class myForm (ModelForm):
class Meta:
model = ModelB
fields = ('d')
widgets = { 'd' : TextInput() }
我想展示一个显示a
和b
字段为TextInput
的表单,以及如何做到这一点?
上面的forms.py
代码显示d
作为名称,但不显示其字段。
似乎你正在寻找内联格式集:
内联格式集是模型格式集之上的一个小抽象层。这简化了通过外部对象处理相关对象的情况关键。假设你有这两个模型…
对于你的模型:
from django.forms.models import inlineformset_factory
ModelBFormSet = inlineformset_factory(ModelB, ModelA)
BInstance = ModelB.objects.get(a=u'some value')
formset = ModelBFormSet(instance=BInstance)
阅读"在视图中使用内联格式集"了解如何使用factory