在Django模型窗体中手动输入值

2024-06-30 15:29:54 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 用户图像imageformprojectidurl表单
1条回答
网友
1楼 · 发布于 2024-06-30 15:29:54

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

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

相关问题 更多 >