Как отобразить object_list набора запросов в форме с ModelChoiceField в качестве каждого экземпляра в каждой строке?

Я создал дочернюю модель, связанную с родительской моделью с помощью ForiegnKey. В Forms.py я использую ModelChoiceField, где queryset = Parent.objects.all & widget = RadioInput. В моем шаблоне у меня есть таблица строк. При отображении шаблона он возвращает весь набор запросов в каждой строке, потому что {{form.post}} возвращает весь набор запросов. Как я могу перечислить каждый объект в соответствии с строкой?

Модели.ру:

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()

формы.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 %}

person sumanth    schedule 26.07.2016    source источник


Ответы (1)


Вы можете просмотреть связанные поля в своем шаблоне следующим образом:

{% for child in parent.childs.all %}
  {{ child.user }}
  {{ child.amount }}
{% endfor %}
person denvaar    schedule 26.07.2016
comment
В моем шаблоне я хочу сохранить родительские поля и поля суммы, для которых я думал о перечислении Parent_queryset по строке, чтобы, когда пользователь выбирает «родительский» экземпляр и вводит сумму, он был сохранен. Но ваши ответы работают после создания дочернего объекта. Я не создал дочерний объект. Я хотел связать ребенка с родителем, для которого я хочу показать весь список Parent_object_list не целиком, а в каждой строке с каждым экземпляром. Надеюсь, вы поняли мой вопрос. Если нет, не стесняйтесь спрашивать дополнительную информацию. - person sumanth; 26.07.2016