【问题标题】:Set the current user to the model when posting a form发布表单时将当前用户设置为模型
【发布时间】:2020-01-27 20:38:05
【问题描述】:

我正在尝试将请求用户添加到模型中。

def fileupload(request):
files = Download.objects
if request.method == "POST" :
    form = DownloadForm(request.POST, request.FILES)
    if form.is_valid():
        author = request.user
        savefile = form.save()
        savefile.save()

我的模型是:

class Download(models.Model):
author = models.ForeignKey(User, null=True, on_delete=models.SET_NULL)
workspace = models.ForeignKey(Workspace, on_delete=models.CASCADE, related_name="filedownload")
upload = models.FileField(upload_to='uploads/')

但是作者没有更新,有什么线索吗?

【问题讨论】:

  • author = request.user 您在哪里将作者分配给表单?

标签: django python-3.x django-models django-views


【解决方案1】:

您需要将author 添加到您的表单对象。执行此操作的确切方法取决于您的表单类 - 所以可能将其包含在您的帖子中。

试试这样的:

def fileupload(request):
    files = Download.objects
    if request.method == "POST" :
        form = DownloadForm(request.POST, request.FILES)
        if form.is_valid():
            form.author = request.user  # <--- changed to `form.author`
            savefile = form.save()
            savefile.save()

【讨论】:

  • 我试过你的代码它不起作用,我不明白
  • 它工作我只需将 form.author 更改为 savefile.author = request.user
猜你喜欢
  • 2017-05-08
  • 1970-01-01
  • 1970-01-01
  • 2011-05-07
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
  • 2020-07-03
  • 1970-01-01
相关资源
最近更新 更多