0

無効なメール アドレスを入力すると、「これは無効なメールではありません」などのエラー メッセージが表示されません。

私のcomment_form.html:

{% load i18n %}

    <form action="/comment/create/" method="post">
        {% csrf_token %}
            {{ form.errors }}
            {% for field in form %}
            <div class="fieldWrapper">
                {{ field.label_tag }}
                {{ field }}<p>
            </div>

            {% endfor %}
            <input type="hidden" name = "object_id" value="{{object_id}}"  />
            <input type="hidden" name= "next" value="{{ next }}" />
        <input type="submit" value="{% trans "Submit" %}">

    </form>

私のpost_detail.html:

extends "base.html" %}



{% block content %}
<div id="exap">


    {{ post.content }}

</div>
<div class="comment">
    {% for comment in comments %}
        <user>{{ comment.owner }}</user>
        {{ comment.content}}
    {% endfor %}


</div>
{% include "comment_form.html" %}


{% endblock %}

これは私のコメントです。

   def create(request):
    if request.method == 'POST':
        form = CommentForm(request.POST)
        email = request.POST.get('email')
        next = request.POST.get('next')
        if form.is_valid():
            content_type = ContentType.objects.get(app_label="post", model="post")
            object_id = request.POST["object_id"]
            comment = Comment.objects.create(
                content_type = content_type,
                object_id = object_id,
                content = request.POST.get('content'),
                owner= request.POST.get('owner'),
                email = request.POST.get('email')
            )
        else:
            print form.errors
    else:
        form = CommentForm()
    return HttpResponseRedirect(next)

エラー メッセージがテンプレートに表示されませんか?

どこが間違っていますか?

4

1 に答える 1

1

karthikr は、コメントで何が問題なのかを伝えようとしています。フォームを検証に使用していないため、エラーは表示されません。そうする代わりにif validateEmail(email)、フォームクラス内、および呼び出すビューに電子メール検証コードを含める必要がありますif form.is_valid()

さらに、フォームのclean_emailメソッドを記述するときは、ValidationError をキャッチするべきではありません。これは、エラーがフォームのエラー リストに渡される方法です。

于 2013-09-30T19:20:48.553 に答える