Почему Django не читает код HTML в a для l oop? - PullRequest
0 голосов
/ 30 марта 2020

Я написал некоторый код, который позволяет пользователям веб-сайта комментировать фотографии в галерее изображений, используя форму. Однако когда я тестирую код, комментарии не отображаются.

Может показаться, что Django не обрабатывает следующий код (из моего HTML файла для фотогалереи), учитывая, что «Комментарий» не отображается на экране:

            {% for comment in comments %}
            <div class="comments" style="padding: 10px;">
                <p class="font-weight-bold">
                    <h4>Comment by</h4> {{ comment.user }}
                    <span class=" text-muted font-weight-normal">
                        {{ comment.created_on }}
                    </span>
                </p>
                {{ comment.body | linebreaks }}
            </div>
            {% endfor %}

Это мой код views.py:

@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.comment.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 = {'comment_form': comment_form, 'image': image,'comment': comment, 'new_comment': new_comment,'comment_form': comment_form}

return render(request, template_name, context)

У кого-нибудь есть предложения, как мне это исправить, пожалуйста?

РЕДАКТИРОВАТЬ: Код, который я немного пересмотрел с момента создания этого поста, находится по адресу: https://github.com/EmilyQuimby/my_now_and_then. Любые отзывы приветствуются.

Спасибо.

Джефф

1 Ответ

0 голосов
/ 30 марта 2020

В вашем context вы не передаете comments только comment в ваш HTML файл. Таким образом, для l oop в файле шаблона {% for comment in comments %} невозможно найти переменную от comments до l oop. Это означает, что он не вводит для l oop для рендеринга вашего HTML.

...