簡體   English   中英

django inlineformset_factory額外的屬性被忽略?

[英]django inlineformset_factory extra attribute being ignored?

我正在嘗試呈現inlineformset,但“額外”屬性似乎被忽略了。 考慮以下模型:

 class Foo_model(models.Model):     
     fooName = models.CharField(max_length=LIL_STRING)
     bars    = models.ForeignKey("Bar_model")

 class Bar_model(models.Model):     
     barName = models.CharField(max_length=LIL_STRING)

形式:

 class Foo_form(ModelForm):    
     class Meta:
         model = Foo_model

 class Bar_form(ModelForm):    
     class Meta:
         model = Bar_model

 Bar_formset = inlineformset_factory(Foo_model,Bar_model,formset=Bar_form,extra=23)

視圖:

 def ViewFoo(request, model_id=False):
     if model_id:                  
         model = Foo_model.objects.get(pk=model_id)
     else:
         model = Foo_model()

     form = Foo_form(instance=model)    
     formset = Bar_formset(instance=model)

     return render_to_response('form.html', {'form' : form, 'formset' : formset }, context_instance=RequestContext(request))

和模板:

 <html>
   <form method="POST" action="">
     {% csrf_token %}
     <div>
       {{ form }}
       {{ formset }}
     </div>
     <input class="button" type="submit" value="Submit"/>
   </form>
 </html>  

當應該顯示23(“ extra = 23”)時,它僅顯示Bar_form的一個實例。 有什么想法我做錯了嗎?

謝謝


更新:

事實證明,問題的一部分是我的所有模型類都繼承自相同的基類。 如果我讓它們僅繼承自model.Model,那么問題就消失了(盡管其他問題使他們頭疼了)。 我仍然希望它們從單個類繼承,因此我的原始問題仍然存在。


更新更新:

使模型的基類抽象:

 class BaseClass(models.Model):
     class Meta:
         abstract = True

似乎可以解決問題。 現在,我的班級之間可以有ForeignKeys和ManyToManyFields了。

由於外鍵存在於Foo模型中,因此您需要創建一個Foo FormSet (否則,從邏輯上講,對於表單將包含的內容沒有意義)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM