Django 1.2 - Pb с формой в шаблоне (WSGIRequest) - PullRequest
3 голосов
/ 16 марта 2010

Я пытаюсь отобразить форму в шаблоне, но получаю фантастическую ошибку:

Caught AttributeError при рендеринге: объект 'WSGIRequest' не имеет атрибута 'get'

Ошибка в этой строке: {% для поля в form.visible_fields%}

Мой взгляд:

def view_discussion(request, discussion_id):
 discussion = get_object_or_404(Discussion, id=discussion_id)
 form = BaseMessageForm(request)

 return render(request,'ulule/discussions/view_discussion.html', {
  'discussion':discussion,
  'form':form,
 })

Моя форма:

class BaseMessageForm(forms.Form):
 message_content = forms.CharField(widget=forms.HiddenInput())

Мой шаблон:

<form action="" method="post">
{% csrf_token %}
    {% for field in form.visible_fields %}
        <div class="fieldWrapper">
            {% if forloop.first %}
                {% for hidden in form.hidden_fields %}
                {{ hidden }}
                {% endfor %}
            {% endif %}

            {{ field.errors }}
            {{ field.label_tag }}: {{ field }}
        </div>
    {% endfor %}
    <p><input type="submit" value="Send message" /></p>
</form>

Большое спасибо за вашу помощь!

1 Ответ

6 голосов
/ 16 марта 2010

Если я правильно помню, ошибка, которую вы получаете, происходит потому, что вы неправильно указали подпись инициализатора формы: первый аргумент - «данные», который в вашем случае находится в request.POST (а не в самом запросе) , если вы прибываете на POST, который является.

Обычно представление с формой будет выглядеть примерно так:

def my_view(request, ...):
    if request.method == 'POST': # The form has been submitted
        form = MyForm(request.POST)
        if form.is_valid():
            # do whatever you want here, save the form, etc
    else:
        form = MyForm()
    return render_to_response('myform.html', ... )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...