Как настроить форму комментариев Django? - PullRequest
3 голосов
/ 27 марта 2012

Я пытаюсь настроить форму комментариев Джанго.Внутри django.contrib.comments.forms я заметил, что все формы полей объявлены в классе CommentDetailForm, который унаследован от CommentSecurityForm.Затем я думаю, что когда я пишу тег шаблона {% get_comment_form for order as form %}, он получает класс с именем CommentForm, который наследует CommentDetailForm с полем honeypot.

Я хотел настроить форму комментариев так, чтобы она отображала толькополе комментариев (а не необязательные поля имени, адреса электронной почты или URL-адреса).Эта информация будет предоставлена ​​текущим вошедшим в систему пользователем.На самом деле комментировать могут только зарегистрированные пользователи с определенным UserProfile.user_type (UserProfile имеет внешний ключ к User).

Какие-либо советы о том, как этого добиться?Глядя на исходный код комментариев Django, меня уже пугает. Lol.

EDIT:

Вот как шаблон комментария выглядит так:

{% 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>

И сайт выглядит так

image

Я хочу скрыть Name, Email address и URL.

1 Ответ

2 голосов
/ 27 марта 2012

Вы должны быть в состоянии сделать все это в шаблоне:

{% 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 %}
...