Inlineformset отсутствует форма управления - PullRequest
0 голосов
/ 25 сентября 2019

4 модели, где две ("DataModel", "ImageModel") работают с этой фабрикой inlineformset.Родитель содержит данные, а потомок должен содержать загруженные картинки для этих данных.После POST или получения значений iv получил заголовок ошибки.Похоже, я пропускаю какой-то экземпляр, когда пытаюсь поместить сообщение в formset.

Я пробую разные способы в шаблоне, используя {{ imgformset.management_form }}, а также пытаюсь разными способами сделать экземпляр из модели данных, нобезуспешно.

ОБНОВЛЕНИЕ

На данный момент у меня есть следующий код: models.py

class People(models.Model):
    name = models.CharField(max_length=120)
    surename = models.CharField(max_length=120)


class DataModel(models.Model):
    people = models.ForeignKey(People, default=None, on_delete=models.CASCADE)
    input1 = models.CharField(max_length=120)

class Results(models.Model):
    peopledata = models.ForeignKey(DataModel, default=None, on_delete=models.CASCADE)
    result = models.IntegerField(db_column='resultspeople',blank=True)

class ImageModel(models.Model):
    peopleimgdatafk = models.ForeignKey(DataModel, default=None, on_delete=models.CASCADE)
    imagedata = models.ImageField(upload_to='images/data',blank=True)
    imagepeople = models.ImageField(upload_to='images/people',blank=True)

forms.py

class ImageForm(ModelForm):

    class Meta:
        model = ImageModel
        fields = ('imagedata', 'imagepeople',)

view.py

@login_required(login_url='/login/')
def insert(request):

    ImageFormSet = inlineformset_factory(DataModel, ImageModel, form=ImageForm, extra=1, can_delete=True)

    if request.method == "POST":

        people = PeopleForm(request.POST)
        datamodelform = DataModelForm(request.POST)
        peopleresultform = PeopleResultForm(request.POST) # --- this can be empthy after all forms/models are saved it take the values and make cal.

        imgformset = ImageFormSet(request.FILES or None)
        if people.is_valid() and datamodelform.is_valid() and peopleresultform.is_valid() and imgformset.is_valid(): 

            people = people.save()
            datamodelform = datamodelform.save(commit=False)
            datamodelform.people = people
            datamodelform.save()

            return HttpResponseRedirect("/")

    else:
        people = PeopleForm()
        datamodelform = DataModelForm()
        imgformset = EmbrionImageForm()
        return render(request, 'people/insert.html', {'people': people, 'datamodelform': datamodelform, 'imgformset': imgformset})

template.html

{% extends 'base.html' %}

{% block content %}

  <h2 align="center">Insert People</h2>
  <br />
  <form method="post" enctype="multipart/form-data" action="{% url 'people:insert' %}">
  {% csrf_token %}

<table>
  {{ people }}

  {{ datamodelform }}

</table>
<table>

{{ imgformset }}
</table>
<input class="btn btn-primary" type="submit" value="Calculate" name="calc"/>
</form>

{% endblock %}

Таким образом, вся идея состоит в том, чтобы ввести данные для модели модели 1,2 и несколько изображений для данной модели данных.Также хранит историю для данных и моделей.Например: Модель1 имеет это model2, datamod and imgformset.Любые идеи, почему я получаю эту ошибку еще до того, как я доберусь до if request.method == "POST".И есть ли лучший способ проверить все эти модели.

...