在django模型表格

时间:2017-04-08 15:07:47

标签: python django

我正在使用django的默认User类。我已经创建了一个UserImage类来存储用户的图像。

class UserImage(models.Model):
    user_id = models.ForeignKey(User, blank=False)
    image_url = models.ImageField(upload_to='users/images/')

ImageUploadForm表单中,我只希望用户选择image_url,并将user_id设置为当前经过身份验证的用户ID。这是图片上传表单,

class ImageUploadForm(forms.ModelForm):
    class Meta:
        model = UserImage
        fields = {'image_url'}

通常我保存这样的模型表格,

form = ProjectForm(request.POST or None, instance=project)

    if request.POST and form.is_valid():
        form.save()
        return HttpResponseRedirect(reverse('projects:project_dashboard', kwargs={'project_id': project_id}))

那么如何在此处添加user_id字段?我应该在视图中将其设为隐藏字段吗?或者有更好的选择吗?

1 个答案:

答案 0 :(得分:2)

我相信图片会由经过身份验证的用户上传,对吧?我的意思是只有在登录后,他/她才能上传图片。 在这种情况下,您只需在用户参数中使用request.user

if form.is_valid():
   user_image = form.save(commit=False)
   user_image.user_id = request.user.id
   user_image.save()