Скрытое поле в форме Django отсутствует в cleaned_data

У меня есть такая форма:

class CollaboratorForm(forms.Form):
    user = forms.CharField(label="Username",max_length=100)
    canvas = forms.IntegerField(widget=forms.HiddenInput)
    ....
    def clean_user(self):
        user = self.cleaned_data['user']
        canvas = self.cleaned_data['canvas']

В представлении, которое я просто вызываю

if form.is_valid():

, я получаю сообщение об ошибке:

KeyError at /canvas/1/add-collaborator/
'canvas'

Согласно firebug, значение публикуется, просто похоже, что оно не попадает в мои чистая функция. Я делаю это неправильно?

РЕДАКТИРОВАТЬ: Опубликовать данные

canvas  1
csrfmiddlewaretoken 2cb73be791b32ca9a41566082c804312
user    username

РЕДАКТИРОВАТЬ2: Я также хотел бы получить ответ, который мог бы сказать мне, как отправить первичный ключ в функцию clean_user, где первичным ключом является / 1 / в приведенном выше примере URL. Функция в вызываемом представлении:

def canvas_add_collaborator(request, pk):

Итак, я хотел бы отправить pk в функцию clean_user, которая решила бы мою проблему, не требуя скрытого поля.

9
задан Samsquanch 30 November 2011 в 16:05
поделиться