Я создал шаблон для отображения фотогалереи и предоставления пользователям возможности добавлять фотографии в эту галерею:
Идея состоит в том, что с каждым комментарием связано изображение - есть для l oop из {% для p в картинках%} в начале страницы, и я использую варианты p. (egpimage_id), чтобы связать определенные изображения с конкретными комментариями.
Кроме того, urls.py содержит следующее:
path('add_comment/<int:p.image_id>', views.add_comment, name='add_comment')
Однако, когда я запускаю код, я получаю сообщение об ошибке, в котором говорится, что идентификаторы изображений не создаются ( несмотря на то, что изображение является полем в созданной мной модели Pictures):
Реверс для 'add_comment' с аргументами '(' ',)' не найден. Попробован 1 шаблон (ов): ['add_comment / $']
Что вы предлагаете, пожалуйста?
РЕДАКТИРОВАТЬ: Это мое мнение:
@login_required
def add_comment(request, image_id):
new_comment = None
template_name = 'add_comment.html'
image = get_object_or_404(Picture, id=image_id)
comment = image.comments.filter(active=True)
new_comment = None
# Comment posted
if request.method == 'POST':
comment_form = CommentForm(data=request.POST)
if comment_form.is_valid():
# Create Comment object and don't save to database yet
new_comment = comment_form.save(commit=False)
# Assign the current post to the comment
new_comment.post = post
# Save the comment to the database
new_comment.save()
else:
comment_form = CommentForm()
context = {'image': image,'comment': comment, 'new_comment': new_comment,'comment_form': comment_form}
return render(request, template_name, context)
А это мой add_comment. html шаблон:
{% extends 'nowandthen/base.html' %}
{% load staticfiles %}
{% block title_block %}
Add self
{% endblock %}
{% block body_block %}
<h1>Add a Comment</h1>
<div>
<form id="comment_form" method="post" action="{% url 'nowandthen:add_comment' comment_id%}" enctype="multipart/form-data" >
{% csrf_token %}
{{ form.as_p }}
<input type="submit" name="submit" value="Add Comment" />
</form>
</div>
{% endblock %}