Django形式变得无效



我是django的新手。进入新的经历后,我有一些麻烦。以下,

1,模型

class UserProfileDetails(models.Model):
user = models.OneToOneField(User)
profilePicture = models.ImageField('Profile Picture',upload_to='static/ProfilePic/', null=True,blank=True)
def __str__(self):
    return self.user.username

2,表格

class imageUploadForm(forms.ModelForm):
class Meta:
    model=  UserProfileDetails
    fields = ['user','profilePicture']

3,最后是视图函数

def upload_pic(request):
current_user = request.user
if request.method == 'POST':
    form = imageUploadForm(request.POST, request.FILES)
    if form.is_valid():
        pic = form.cleaned_data['profilePicture']
        m = UserProfileDetails(user= current_user.id,profilePicture=pic)
        m.save()
    else:
        raise NotImplemented("What if the user doesn't have an associated profile?")
return HttpResponseRedirect(reverse('polls:profile'))

此代码与Django 1.8一起使用。但是,在移植到Django 1.10.4之后,该表格变得无效。我相信,问题是 onetoonefield

IMP :另外,我正在使用Pinax帐户应用程序进行帐户管理。

为什么这种表格变得无效?

提交表单时,似乎并没有为两个字段(用户和个人资料图片)提供正确的输入。我的猜测是,您没有以形式通过用户发送,这意味着它是无效的。因此,您仅上传图像。

您不需要在" request.user"中访问视图中的"用户"字段属性中的"用户"。因此,从表单中删除"用户"字段。

另外,为了确保它是正确的,请将'user = current_user.id'更改为'user = current_user',因此您是与实例相匹配的实例,而不是具有ID的实例。

相关内容

  • 没有找到相关文章

最新更新