Как настроить форму комментариев Django?
Я пытаюсь настроить форму комментариев Джанго. внутри django.contrib.comments.forms
Я заметил, что все формы полей объявлены в классе CommentDetailForm
, который наследуется от CommentSecurityForm
, Тогда я думаю, когда я пишу тег шаблона {% get_comment_form for order as form %}
, он получает класс под названием CommentForm
который наследует CommentDetailForm
с полем honeypot.
Я хотел настроить форму комментариев так, чтобы она отображала только поле комментариев (а не дополнительные поля имени, адреса электронной почты или URL-адреса). Эта информация будет предоставлена текущим вошедшим в систему пользователем. На самом деле, только вошли в систему пользователей с определенным UserProfile.user_type
(UserProfile
имеет внешний ключ к User
) разрешено комментировать.
Любые советы о том, как этого добиться? Глядя на исходный код комментариев Django уже пугает меня, смеется.
РЕДАКТИРОВАТЬ:
Вот как выглядит шаблон комментария:
{% get_comment_form for order as form %}
<form action = "{% comment_form_target %}" method = "post">
{% csrf_token %}
{{ form }}
<input type = "submit" name = "submit" value = "Post">
</form>
И сайт выглядит так
Я хочу спрятаться Name
, Email address
, а также URL
,
1 ответ
Вы должны быть в состоянии сделать все это в шаблоне:
{% ifequal User.profile.user_type "comment_type" %}
{% get_comment_form for order as form %}
<form action="{% comment_form_target %}" method="post">
{% csrf_token %}
{% for field in form %}
{% ifequal field.name "name" %}
<input id="id_name" type="hidden" name="name" value="{{ user.username }}" />
{% else %}{% ifequal field.name "email" %}
<input type="hidden" name="email" value="{{ user.email }}" id="id_email" />
{% else %}{{ field }}{% endifequal %}{% endifequal %}
{% endfor %}
<input type="submit" name="submit" value="Post">
</form>
{% endifequal %}