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

如何将初始数据填充到Django表单?

考虑是否填充了这些型号.包含数据.

models.py

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

所以如果我有

view.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 forms时填充初始数据,我通常会这样做:

    {% 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表单上启动和运行?

是这个吗

<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的回答告诉您如何使用视图中的一些数据初始化表单.要在模板中呈现表单,请参阅Django文档的以下部分,其中包含许多示例:

尽管这些示例显示了从python解释器进行呈现的过程,但在模板中执行时情况是一样的.

例如,假设您将表单作为f传递到上下文中,而不是print f,您的模板将只包含:{{ f }}.类似地,f.as_p()在模板中被写为{{ f.as_p }}.这在Django模板文档的Variables部分下进行了描述.

更新(回复 comments )

不完全是,模板符号仅适用于template.表单和相关数据在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的update_or_create失败,尽管指定了kwargs'

仅更新模型中的特定字段.Model Django

Django中的DateTimeField到DateField

如何删除Docker上的django应用程序?

Templatetag 在 Django 4.2 模板 IF 条件中不起作用

如何保护单个数据库行/模型实例?

获取 Django (postgres) 中带注释字段的平均值

如何在 Fargate 容器中运行的 Django 中使用 AWS SES?

过滤查询以获取两个朋友之间的聊天消息?

如何连接到 docker 容器中的 postgres 数据库?

Django 转储数据将附加数据添加到 json 导出

防止 django 将_id附加到外键字段

什么时候在 django rest 框架序列化程序中调用创建和更新?

Django 模型中的隐藏字段

何时在 django 中使用 pre_save、save、post_save?

Django - 如何从模型中 Select 特定列?

django excel xlwt

Django 1.9 中 django.db.models.loading.get_model() 的类似功能是什么?

Django:在模块中实现 status字段的最佳方式

Python Django 的多线程