Я создаю сайт, используя Django. Я хотел бы дать пользователям возможность комментировать фотографии, которые они опубликовали. Я создал модель комментария и форму комментария и поместил следующий код в документ HTML для фотогалереи:
<h3>Leave a comment</h3>
<form method="post" style="margin-top: 1.3em;">
{{ comment_form.as_p }}
{% csrf_token %}
<button type="submit" class="btn btn-primary btn-lg">Submit</button>
</form
Однако форма не отображается - между 'Leave нет ничего комментарий »и кнопка« Отправить »на странице. Я не понимаю этого, поскольку моя форма в forms.py, кажется, настроена правильно:
class CommentForm(forms.ModelForm):
body = forms.CharField(help_text="What is your comment?", widget=forms.TextInput(attrs={'size': '1000'}),
required=True)
class Meta:
model = Comment
fields = ('body',)
def as_p(self):
# Returns this form rendered as HTML <p>s.
return self._html_output(
normal_row='<p%(help_text)s<p></p>%(field)s</p>',
error_row='%s',
row_ender='</p>',
help_text_html=' <span class="helptext">%s</span>',
errors_on_separate_row=True)`
Так же как и моя модель в models.py:
class Comment(models.Model):
COMMENT_MAX_LENGTH = 1000
image = models.ForeignKey(Picture, on_delete=models.CASCADE, related_name="comments")
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
body = models.TextField(max_length=COMMENT_MAX_LENGTH)
created_on = models.DateTimeField(auto_now_add=True)
active = models.BooleanField(default=False)
class Meta:
ordering = ['created_on']
def __str__(self):
return 'Comment {} by {}'.format(self.body, self.user)
Я бы действительно Спасибо за любые предложения, которые может предложить любой.
ОБНОВЛЕНИЕ: Когда я go в исходный код на сайте, это показывает, что форма скрыта. Кроме того, когда я изменяю comment_form.as_p на что-то случайное, сообщения об ошибках не генерируются. Как будто что-то заставляет Django пропустить этот бит кода.
Спасибо
Джефф