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"
.И есть ли лучший способ проверить все эти модели.