Почему мои формы не возвращают полевые ошибки? - PullRequest
0 голосов
/ 30 августа 2010

Недавно я обновил свой сервер django. Переход с 1.2 на новую версию. Формы демонстрируют странное поведение. Когда поле оставлено пустым, вся страница просто обновляется, а не показывает ошибки, которые я помню Что может вызвать это? Что я должен сделать, чтобы это исправить?

{%extends "baseAUTH.html" %}
    {% block title  %}
    {{ title }}
    {% endblock %}


    {% block content %}
{% load adminmedia %}

<script type="text/javascript">
window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";
</script>


<script type="text/javascript" src="/admin/jsi18n/"></script>
<script type="text/javascript" src="/media/js/core.js"></script>
<link rel="stylesheet" type="text/css" href="/media/css/forms.css"/>
<link rel="stylesheet" type="text/css" href="/media/css/base.css"/>
<link rel="stylesheet" type="text/css" href="/media/css/global.css"/>
<link rel="stylesheet" type="text/css" href="/media/css/widgets.css"/>

{{ form.media }}


    <h1>{{ title }}</h1>

    {% if form.errors %}
        <p style="color: red;">
            Please correct the error{{ form.errors|pluralize }} below.
        </p>
    {% endif %}

    <form action="" method="post" enctype="multipart/form-data">
    {% csrf_token %}
        <table valign=TOP>
            {{ form.as_table }}
        </table>
        <input type="submit" value="Submit">
    </form>
    {% endblock %}

1 Ответ

0 голосов
/ 30 августа 2010

Я нашел проблему.Я отменил некоторые изменения обратно и нашел точку, где я сломал это.В следующей функции я попытался абстрагироваться

def FormToEmail(request, token, title, subject, message, reciever, attachlist):

    if request.method == 'POST':
        sender = AddSender(request)
        reciever.append(sender)

        form = token(request.POST, request.FILES)

        if form.is_valid():
            mail = EmailMessage(subject, message, sender, reciever)

            if len(attachlist) > 0:
                for item in attachlist:
                    if form.cleaned_data[item]:
                        temp = request.FILES[item]
                        mail.attach(temp.name, temp.read(), \
                            temp.content_type)

            return SendIt(request, mail)

Здесь до

    else:
        form = token()
    if request.user.is_authenticated():
        return render_to_response('FormTemplate.html',  \
        {'form': form, 'title' : title},  \
        context_instance=RequestContext(request))
    else:
        return HttpResponseRedirect('/Webtemplate/accounts/login')

здесь.В

return RenderFormForAuth(request, token(), title)

с функцией, определенной как

def RenderFormForAuth(request, form, title):
    if request.user.is_authenticated():
        return render_to_response('FormTemplate.html',  \
        {'form': form, 'title' : title},  \
        context_instance=RequestContext(request))
    else:
        return HttpResponseRedirect('/Webtemplate/accounts/login')

, которая сломала все.(Я могу вставить всю функцию / как она вызывается, если это необходимо, но кажется пустой тратой пространства.)

Кто-нибудь знает, почему это не сработает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...