0

有什么方法可以检查 Django 注释中输入的格式是否正确?具体来说,我想检查输入的电子邮件是否具有@thisuniversity.edu 的形式?我想确保所有评论都来自大学里的人,所以这将是一种检查方式。

我重写了 comments/form.html 文件的代码以包含特定功能。

具体文件如下:

{% load comments i18n %}
<form action="{% comment_form_target %}" method="post">{% csrf_token %}
  {% if next %}<div><input type="hidden" name="next" value="{{ next }}" /></div>{% endif %}
  {% for field in form %}
    {% if field.is_hidden %}
      <div>{{ field }}</div>
    {% else %}
      {% if field.errors %}{{ field.errors }}{% endif %}
      <p
        {% if field.errors %} class="error"{% endif %}
        {% ifequal field.name "honeypot" %} style="display:none;"{% endifequal %}>
        {% if field.name != "url" and field.name != "email" and field.name != "name" %}
        {{ field.label_tag }} {{ field }}
        {% elif field.name = "email" %}
        <b>Enter your university email address.</b><br><br>
        {{ field.label_tag }} {{ field }} 
        {% elif field.name = "name" %}
        {{ field.label_tag }} {{ field }} 
        {% endif %}
      </p>
    {% endif %}
  {% endfor %}
  <p class="submit">
    <input type="submit" name="post" class="submit-post" value="{% trans "Post" %}" />
  </p>
</form>

谢谢。

4

1 回答 1

0

提交表单时,我会清理电子邮件字段。请参阅文档

示例代码:

class SomeForm(forms.Form):
    # Everything as before.

    def clean_email(self):
        email = self.cleaned_data.get('email', '')

        if email.endswith('@something.com'):
            return email

        raise forms.ValidationError('Provide an Something.com email address')
于 2013-05-12T16:04:31.963 回答