0
我有4個模型,我需要一次存儲數據。爲此,我在考慮使用ModelForms。Django - 如何在同一個表單中使用多個ModelForm?
我已經測試了2個ModelForm的同時,但它不工作。這是代碼。
型號:
class Main(models.Model):
section = models.ForeignKey(Section)
user = models.ForeignKey(User)
title = models.CharField(max_length=250)
date_inserted = models.DateTimeField(auto_now_add=True)
date_last_update = models.DateTimeField(auto_now=True)
def __unicode__(self):
return self.title
# To order in the admin by name of the section
class Meta:
ordering = ['date_inserted']
class BicycleAd(models.Model):
main = models.ForeignKey(Main)
bicycleadtype = models.ForeignKey(BicycleAdType)
bicycleaditemkind = models.ForeignKey(BicycleAdItemKind) # MPTT Model
bicycleadcondition = models.ForeignKey(BicycleAdCondition)
country = models.ForeignKey(GeonamesCountry)
city = models.ForeignKey(GeonamesLocal)
date_inserted = models.DateTimeField(auto_now_add=True)
date_last_update = models.DateTimeField(auto_now=True)
# To order in the admin by name of the section
class Meta:
ordering = ['date_inserted']
形式:
class MainForm(forms.ModelForm):
class Meta:
model = Main
exclude = ('user', 'section')
class BicycleAdForm(forms.ModelForm):
class Meta:
model = BicycleAd
exclude = ('main', 'bicycleadtype', 'bicycleaditemkind', 'bicycleadcondition', 'city')
查看:
def submit_data_entry_view(request):
form_main = MainForm(request.POST)
form_bicyclead = BicycleAdForm(request.POST)
return render_to_response('app/submit_data_entry.html', {'form_main': form_main, 'form_bicyclead': form_bicyclead}, context_instance=RequestContext(request))
模板:
<form method="post" action="">
{{form_main}}
{{form_bicyclead}}
</form>
最後我只得到瀏覽器中輸出的「form_bicyclead」?我怎樣才能一次獲得這兩種表格?
最好的問候,
你使用的是什麼版本的Django? –
嗨!我正在使用1.4.2 –
然後,我會懇求您重新訪問您的代碼並使用基於類的視圖對其進行更新,它們需要一點學習,但是當您掌握它們時,它們確實會發光。只是一個提示,我會看看如果我能回答你的答案! :) –