gpt4 book ai didi

django - 在 Django 表单上初始填充

转载 作者:行者123 更新时间:2023-12-03 10:36:20 25 4
gpt4 key购买 nike

我决定学习 Django Forms。一段时间以来,我一直在使用 HTML 表单,因为我很难接受 Django 表单。

如何将初始数据填充到 Django Forms?
例子:

考虑是否填充了这些模型。包含数据。

模型.py

class Game(models.Model):
title = models.CharField()
genre = models.CharField()

所以如果我有

查看.py
game_list = Game.objects.all()
return render_to_response('template',locals())

所以在 template.html 中,我可以:
{% for game in game_list %}
<p> game.title <p> <br /> <p> game.genre <p>

如果我想在使用 HTML 表单时填充初始数据,我通常会这样做:
    {% for game in game_list %}
<form action= '/add/' method='POST'>
<input="text" name="title" value="{{game.title}}" />
<input="text" name="genre" value="{{game.genre}}" />
<input type="submit" />

我怎样才能在 Django 表单中做到这一点?
从我在网上阅读文章所看到的情况来看,他们通过覆盖使用 forms.__init__ 来做到这一点。 :
class Anyforms(forms.Form):
super(Anyforms, self).__init__(*args,**kwargs)

我不知道如何使用 super 进行填充.表单在运行时获取哪些数据以及如何获取?
我可以阅读任何好的链接来让我开始并运行 Django Forms?

这是
<input="text" name="title" value="{{game.title}}" /> 
<input="text" name="genre" value="{{game.genre}}" />

相当于这个?
data = {'title':'{{game.title}}','genre':'{{game.genre}}'} 
form(data)

变量会在模板中被替换吗?

最佳答案

S. Lott 的回答告诉您如何使用 View 中的一些数据初始化表单。要在模板中呈现您的表单,请参阅 django 文档的以下部分,其中包含许多示例:

  • Outputting forms as HTML

  • 尽管示例显示了从 Python 解释器进行的渲染工作,但在模板中执行时它是相同的。

    例如,代替 print f ,您的模板将只包含: {{ f }}假设您通过上下文传递表单 f .同样, f.as_p()在模板中写为 {{ f.as_p }} .这在 Variables 下的 django 模板文档中有所描述。部分。

    更新(回复评论)

    不完全是,模板符号仅用于模板。您的表单和相关数据在 View 中初始化。

    因此,使用您的示例,您的 View 将包含以下内容:
    def view(request):
    game = Game.objects.get(id=1) # just an example
    data = {'id': game.id, 'position': game.position}
    form = UserQueueForm(initial=data)
    return render_to_response('my_template.html', {'form': form})

    那么您的模板将具有以下内容:
    {{ form }}

    或者,如果您想自己自定义 HTML:
    {{ form.title }} <br />
    {{ form.genre }} <br />

    等等。

    我建议尝试一下并尝试一下。然后,如果遇到问题,请提出问题。

    关于django - 在 Django 表单上初始填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3833403/

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