У объекта формы Django нет проблем с атрибутами - PullRequest
3 голосов
/ 11 сентября 2011

У меня есть простая форма, и я пытаюсь отправить ее в простую службу.

Модель формы:

class order_form(forms.Form):
    name = forms.CharField(max_length=100)
    phone = forms.CharField(max_length=20)
    email = forms.CharField(max_length=100)
    address = forms.CharField(max_length=200)
    ordered_picture = forms.CharField()

представление (не отсортированы все биты cleared_data иеще ничего):

def place_order(request):
    result = dict()
    if request.method == 'POST':
        try:
            form = order_form(request.POST)
            if not picture.objects.filter(id=form.ordered_picture).exists():
                result['status'] = 'error'
                result['message'] = 'Ordered picture does not exist'
            new_order = order()
            new_order.name = form.data.name
            new_order.phone = form.data.phone
            new_order.email = form.data.email
            new_order.address = form.data.address
            new_order.ordered_picture = int(form.data.ordered_picture)
            new_order.save()
            result['status'] = 'ok'
            result['message'] = new_order.id
        except Exception, e:
            result['status'] = 'error'
            result['message'] = e.message
    else:
        result['status'] = 'error'
        result['message'] = 'Only HTTP POST Method is supported by this service'
    return HttpResponse(content=simplejson.dumps(result))

Вот копия данных POST, которая входит:

csrfmiddlewaretoken:77d1ba277ef43838e670f598c2a128b6
name:qwe
phone:qwe
email:qwe
address:qwe
ordered_picture:1

, и я получаю следующее:

{"status": "error", "message": "'order_form' object has no attribute 'ordered_picture'"}

this "у объекта нет атрибута "вещь выдается в Exception сразу после попытки form = order_form (request.POST).Я собираюсь сломать голову - почему это говорит мне, что форма не имеет этого атрибута, когда она есть в реальности?

1 Ответ

4 голосов
/ 11 сентября 2011

Время отсортировать все «биты cleaned_data», так как - это способ доступа к значениям поля .

        if not picture.objects.filter(id=form.cleaned_data['ordered_picture']).exists():
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...