Я делаю приложение, которое имеет базовые функции.Родительская модель расширяется дочерней моделью посредством отношения внешнего ключа.Вторая модель рекламирует изображения для первой.У меня есть основной грубый рабочий то есть.добавление изображений и привязка их к первой модели.Мне трудно получить форму дочерней модели, чтобы показать изображения, которые уже были добавлены посредством использования экземпляра.Я хотел бы, если возможно, сохранить представление создания и обновления в одной функции представления.
Я пробовал варианты метода обратного просмотра _set, но я просто получаю другие запутанные ошибки.Это тот, который имеет наибольшее значение для меня.
def add_image(request):
if 'product_id' in request.GET:
product_id = request.GET['product_id']
product = get_object_or_404(Product, id=product_id)
if request.method == 'POST':
form = ProductImageForm(request.POST, request.FILES)
if form.is_valid():
productimage = form.save(commit=False)
productimage.product = product
productimage.save()
return redirect('dashboard:products')
else:
print(form.errors)
else:
if product.productimage_set:
i = product.productimage_set.all()
form = ProductImageForm(instance=i)
else:
form = ProductImageForm()
return render(request, 'dashboard/add_image.html', {'form': form})
class ProductImageForm(forms.ModelForm):
class Meta:
model = ProductImage
exclude = ['product']
<form method="post" action="" class="width-100" enctype="multipart/form-data">
{% csrf_token %}
{% for hidden_field in form.hidden_fields %}
{{ hidden_field }}
{% endfor %}
{% for field in form.visible_fields %}
<div class="fieldWrapper">
{{ field.label_tag }}
{% render_field field class="form-control"%}
{% if field.help_text %}
<small class="form-text text-muted">{{ field.help_text }}</small>
{% endif %}
</div>
{% endfor %}
<br>
<input class="btn btn-primary btn-rounded btn-block" type="submit" value="Add Images"/>
<a class="btn btn-light btn-block btn-rounded" href="{% url 'dashboard:products' %}">Cancel</a>
</form>
Мне бы хотелось, чтобы в форме отображались уже добавленные изображения из экземпляра, который я вызываю, если пользователь захочет изменить экземпляр модели.Вместо этого я получаю сообщение об ошибке:
AttributeError at /dashboard/products/add-image/
'QuerySet' object has no attribute '_meta'