我正在使用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
字段?我应该在视图中将其设为隐藏字段吗?或者有更好的选择吗?
答案 0 :(得分:2)
我相信图片会由经过身份验证的用户上传,对吧?我的意思是只有在登录后,他/她才能上传图片。
在这种情况下,您只需在用户参数中使用request.user
。
if form.is_valid():
user_image = form.save(commit=False)
user_image.user_id = request.user.id
user_image.save()