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

时间:2013-04-14 17:49:19

标签: django django-models django-forms

# 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作为名称,但不显示其字段..

1 个答案:

答案 0 :(得分:2)

您似乎在寻找inline formsets

  

内联表单集是模型表单集之上的一个小抽象层。   这些简化了通过外部处理相关对象的情况   键。假设你有这两个模型......

对于您的模特:

from django.forms.models import inlineformset_factory
ModelBFormSet = inlineformset_factory(ModelB, ModelA)
BInstance = ModelB.objects.get(a=u'some value')
formset = ModelBFormSet(instance=BInstance)

阅读“Using an inline formset in a view”以了解如何使用工厂。