繁体   English   中英

手动输入Django模型形式的值

[英]Manually enter a value in django model form

我正在使用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字段? 我应该在视图中将其设为隐藏字段吗? 还是有更好的选择?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM