如何在模型表单中显示ForeignKey字段


# 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() }

我想展示一个显示ab字段为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

最新更新