[英]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.