Идентификаторы изображений явно не создаются - PullRequest
0 голосов
/ 01 апреля 2020

Я создал шаблон для отображения фотогалереи и предоставления пользователям возможности добавлять фотографии в эту галерею:

image

Идея состоит в том, что с каждым комментарием связано изображение - есть для 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 %}

1 Ответ

0 голосов
/ 01 апреля 2020

Поскольку переменная pictures является Queryset , когда вы oop просматриваете ее в своем шаблоне, чтобы получить доступ к ее идентификатору, вам просто нужно сделать это таким образом. instance.id

В зависимости от вашего случая, вы будете иметь:

{% url 'nowandthen:add_comment' p.id %}

И вы сможете получить доступ к идентификатору в вашем представлении с помощью image_id

...