gpt4 book ai didi

django - 异常类型: MultiValueDictKeyError when send POST request

转载 作者:行者123 更新时间:2023-12-03 07:09:23 31 4
gpt4 key购买 nike

当我尝试发布创建新文章表单时,遇到这样的错误:

django.utils.datastructures.MultiValueDictKeyError: "'title'"
Exception Type: MultiValueDictKeyError
Exception Value:
"'title'"

enter image description here

views.py,处理POST数据并将其存储到数据库,

def create_article(request, block_id):
block = Block.objects.get(id=block_id)

if request.method == "GET":
context = {'b':block}
return render(request, "article/create_article.html", context)
elif request.method == "POST":
title = request.POST['title']
content = request.POST['content']
article = Article(block=block, title=title, content=content, status=0)
article.save() # save to database
return redirect(f"article/list/{ block_id }")

模型.py

class Article(models.Model):
STATUS = (
(0, 'normal'),
(-1, 'deleted'),
)
block = models.ForeignKey(Block, on_delete=models.CASCADE)
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
content = models.CharField(max_length=1000) # set the widget
status = models.IntegerField(choices=STATUS)
date_created = models.DateTimeField(default=datetime.now)
date_updated = models.DateTimeField(auto_now=True)


def __str__(self):
return self.title

表单模板,利用bootstrap的风格。

    <form class="form-horizontal" action="/article/create/{{ b.id }}" method="POST">
{% csrf_token %}
<div class="form-group">
<label for="title" class="col-sm-1 control-label">Title</label>
<div class="col-sm-11">
<input type="text" class="form-control" id="title" placeholder="Write Title Later" >
</div>
</div>
<div class="form-group">
<label for="content" class="col-sm-1 control-label" >Content</label>
<div class="col-sm-11">
<textarea class="form-control" id="content" rows="10">Write Content Firslty.</textarea>
</div>
</div>

<div class="form-group">
<div class="col-sm-offset-1 col-sm-11">
<button type="submit" class="btn btn-primary">Publish</button>
</div>
</div>
</form>

我向标签添加名称属性后,它报告相同的错误

        <div class="col-sm-11">
<input type="text" class="form-control" id="title" name="title" placeholder="Write Title Later" >
</div>

如何解决这样的问题?

最佳答案

您缺少输入name参数。 id 仅由 CSS 和 JS 使用。尝试使用

<input type="text" class="form-control" name="title" id="title" placeholder="Write Title Later" >

而不是

<input type="text" class="form-control" id="title" placeholder="Write Title Later" >

关于django - 异常类型: MultiValueDictKeyError when send POST request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50558625/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com