2013-04-14 24 views
0
# 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以及如何做到這一點的表單字段ForeignKey的?如何顯示在表格範本

以上forms.py代碼顯示d的名字,但不是它的領域..

+0

小心,'fields =('d')'應該是'fields =('d',)' – linqu

回答

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」 來學習如何使用工廠。