【问题标题】:MultiValueDictKeyError at /savepost//savepost/ 处的 MultiValueDictKeyError
【发布时间】:2020-11-26 11:40:12
【问题描述】:

我知道以前有人问过这个问题,但我正面临这个 MultiValueDictKeyError。基本上我试图从用户那里获取输入,输入标签有这个 name="usercaption" 属性。当我点击提交时,它会弹出 MultiValueDictKeyError。这是我的 HTML 表单:

<div class="post">
    <form action="/savepost/" method="GET">
        <input type="text" name="usercaption" placeholder="Write Something...">
        <div class="attach">
            <button class="upload-image"><i class="fal fa-image"></i> Image</button>
            <button><i class="fal fa-video"></i> Video</button>
            <button><i class="fal fa-smile-beam"></i> Mood</button>
            <button type="submit">Upload</button>
        </div>
    </form>
</div>

这是我的视图函数:

def savepost(request):
    caption = request.GET["usercaption"]
    Post = post(caption=caption)
    Post.save()
    return redirect('usersfeed')

错误在这一行caption = request.GET["usercaption"]

【问题讨论】:

标签: django database django-models django-forms django-errors


【解决方案1】:

如果不存在,则必须提供默认值,例如:

 caption = request.GET.get["usercaption", ""]

您还必须添加用户:

user = request.user
Post = post(caption=caption, user=user)

【讨论】:

  • 我仍然面临同样的问题 caption = request.GET["usercaption", "Write Something.."] 使用此代码
  • 您有一个GET 请求。你应该把它改成request.GET.get
  • 现在,当我输入此标题 = request.GET.get("usercaption", "Write Something..")
  • IntegrityError at /savepost/ NOT NULL 约束失败:social_media_app_post.user_id 这就是我所面临的
  • 这意味着您还必须添加用户。你没有发布你的模型,所以我不知道。我会编辑我的答案
猜你喜欢
  • 2019-07-09
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 2022-10-06
  • 2023-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多