我有这样的形式:
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'
根据萤火虫的价值是发布,它似乎似乎没有成为我的清洁功能.我做错了吗?
编辑:发布数据
canvas 1 csrfmiddlewaretoken 2cb73be791b32ca9a41566082c804312 user username
EDIT2:我也愿意接受一个可以告诉我如何将主键发送到clean_user函数的答案,其中主键是上面示例url中的/ 1 /.调用的视图中的函数是:
def canvas_add_collaborator(request, pk):
所以我想将pk发送到clean_user函数,这将通过不需要隐藏字段来解决我的问题.
您需要将方法名称更改为clean(),而不是clean_user().如果您只是验证用户字段,'canvas'不在cleaning_data中.