【问题标题】:Django Form doesn't show the initial valueDjango Form 不显示初始值
【发布时间】:2021-05-03 20:53:06
【问题描述】:

我不知道我是否做错了,但即使我在 django 表单中设置了初始值,该值也不会显示在表单中。

class EditForm(forms.Form):
    title = forms.CharField()
    content = forms.CharField()
def edit(request, name):
    initial_data = {
        'title' : name.capitalize(),
        'content' : util.get_entry(name)
    }

    
    if request.method == "POST":
        form = EditForm(request.POST, initial=initial_data)
        if form.is_valid():
            title = form.cleaned_data['title']
            content = form.cleaned_data['content']
            util.save_entry(title, content)
            return HttpResponseRedirect(reverse('wiki:index'))

    return render(request, "encyclopedia/edit.html", {
        "name" : name.capitalize(),
        "content" : util.get_entry(name),
        "form" : NewTaskForm()
    })

我正在尝试显示 Markdown 存档的名称和内容以编辑同一文件,整个应用程序运行正常(导入和保存文件)。

服务器不显示任何错误消息并且页面加载没有问题。 (如果问题有问题,我道歉,我的英语不是最好的)

【问题讨论】:

  • 您想为 NewTaskForm 提供初始值吗?如果是这样,请将其添加到那里:"form" : NewTaskForm(initial = initial_data)。此外,我也不清楚为什么您的视图中有两种不同的表单:EditForm 和 NewTaskForm。这些是一样的吗?
  • 我没有意识到我引用了错误的表格哈哈哈,但现在它可以工作了,非常感谢

标签: python django


【解决方案1】:

使用 NewTaskForm() 而不是 EditForm() 即

"form" : NewTaskForm(initial = initial_data)

你使用的EditForm在这里没有关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-27
    • 2017-08-20
    • 2017-10-24
    • 2021-01-22
    • 2018-02-12
    • 2015-10-21
    • 2021-05-26
    • 1970-01-01
    相关资源
    最近更新 更多