2016-07-26 35 views
0

我已經用ForiegnKey創建了一個與父模型相關的子模型。在forms.py中,我使用了ModelChoiceField,其中queryset = Parent.objects.all & widget = RadioInput。在我的模板中,我有一張表格。渲染模板時,它會返回每行中的整個查詢集,因爲{{form.post}}會返回整個查詢集。如何按行列出每個對象?如何使用ModelChoiceField作爲每一行中的每個實例顯示一個查詢集的object_list?

Models.py:

class Parent(models.Model): 

    parent_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) 
    user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1) 
    from1 = models.CharField(max_length=20) 

class Child(models.Model): 

    child_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) 
    parent = models.ForeignKey(Parent, default=1, related_name='childs') 
    user = models.OneToOneField(settings.AUTH_USER_MODEL, null=True, blank=True, unique=False) 
    amount = models.IntegerField() 

forms.py:

class ChildForm(forms.ModelForm): 
    parent = forms.ModelChoiceField(queryset= Parent.objects.all(), label="Parent", widget=forms.RadioSelect(), initial=0) 
    amount = forms.IntegerField(help_text='Place the child for a Parent') 

    def __init__(self, *args, **kwargs): 
     self.request = kwargs.pop('request', None) 
     super(ChildForm, self).__init__(*args, **kwargs) 
     self.fields['parent'].queryset = Parent.objects.all() 

模板:

{% for parent in parent_queryset %} 
<table class="table table-striped, sortable"> 
    <thead> 
     <tr> 

      <th>Load No.</th> 
      <th>From</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> // HOW CAN I LIST THE PARENT'S OBJECTS AS PER ROW?? 
      <td >{{form.parent}}</td> 

      <td>{{ parent.from1 }}</a><br/></td> 
     </tr> 
    </tbody> 
</table> 
<table class="table table-striped, sortable " style="margin-top: 10px"> 
    <thead> 
     <tr> 
      <th> Amount</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr>  
      <form class="nomargin" method='POST' action='' enctype='multipart/form-data'>{% csrf_token %} 
      <td>{% render_field form.amount class="form-control" %}</td> 
     </tr> 
    </tbody> 
</table> 

<input type='submit' value='Post Child'/></form> 

{% endfor %} 

回答

0

你可以通過在你的模板相關領域這樣的循環:

{% for child in parent.childs.all %} 
    {{ child.user }} 
    {{ child.amount }} 
{% endfor %} 
+0

在我的模板中,我想要存儲父級和金額字段,我考慮按行列出Parent_queryset,以便當用戶選擇「父」實例並輸入金額時,它將被保存。但是你的答案在創建子對象後起作用。我還沒有創建子對象。我想將一個孩子與父母聯繫起來,爲此我想將所有Parent_object_list不是作爲一個整體顯示出來,而是將每個實例顯示在每一行中。我希望你有我的問題。如果沒有,請隨時詢問更多信息。 – sumanth

相關問題