我决定学习Django Forms。一段时间以来,我一直在使用HTML表单,因为很难理解Django表单。
如何将初始数据填充到Django Forms?例:
考虑是否填充了这些模型。包含数据。
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表单时填充初始数据,这通常是我要做的:
{% 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的答案告诉你如何使用视图中的一些数据初始化表单。要在模板中呈现表单,请参阅Django文档的以下部分,其中包含许多示例:
将表单输出为HTML
尽管示例显示了使用python解释器进行渲染的工作,但在模板中执行操作却是相同的。
例如,代替print f
,你的模板将仅包含:{{ f }}
假设你将表单作为上下文传递给上下文f。同样,f.as_p()在模板中以表示{{ f.as_p }}
。django模板文档中“ 变量”部分对此进行了描述。
更新(回应评论)
不完全是,模板符号仅用于template。你的表单和相关数据在视图中初始化。
因此,使用你的示例,你的视图将包含以下内容:
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 />
等等。
我建议尝试一下并尝试一下。然后问一个问题,如果你遇到问题。
问题内容: 我有一些PDF表单,我想用Django Web应用程序中的数据自动填充,然后提供给用户下载。哪个python库可以让我轻松地预填充PDF表单?这些表格旨在打印出来。 问题答案: 如果你要生成非常动态的PDF,并且需要以编程方式控制所有PDF(数据和布局),则Reportlab非常有用。 仅在现有的PDF中填写表格,reportlab是过大的,基本上,你将不得不在reportlab中从头
问题内容: 这是形式的字段声明: 我想将初始值设置为,这似乎不起作用。我玩过参数,引号/无引号等,但是没有变化。 如果有可能,谁能给我一个明确的答案?和/或对我的代码段进行必要的调整? 我正在使用Django 1.0 问题答案: 实例化表单时,请尝试设置初始值:
我有一个基于类的视图(IndexView at views.py),它显示了一个包含数据库中存储的所有数据的表。此视图在索引中呈现。html使用获取所有数据。还没有问题。 对我来说,困难的部分是尝试使用表单来完成它,以便能够修改和保存金额列。我对POST部分没有问题,我使用AJAX来保存新值。我遇到的问题是从数据库中获取初始值以填充Django表单(forms.py) 我尝试在表单字段的定义中使用
我们最后一件关于我们的网站的事情就是创建一个漂亮的方式来增加和编辑博客文章。 Django的管理是很酷,但是它很难去自定义,变得更漂亮。 通过forms,我们可以拥有对我们界面绝对的权利—我们能够做几乎我们能想象到的所有事情! Django表单的一个好处就是我们既可以从零开始自定义,也可以创建ModelForm,它将表单的结果保存到模型里。 这正是我们想做的:我们将为我们自己的Post模型创建一个
HTML表单是网站交互性的经典方式。 本章将介绍如何用Django对用户提交的表单数据进行处理。 HTTP 请求 HTTP协议以"请求-回复"的方式工作。客户发送请求时,可以在请求中附加数据。服务器通过解析请求,就可以获得客户传来的数据,并根据URL来提供特定的服务。 GET 方法 我们在之前的项目中创建一个 search.py 文件,用于接收用户的请求: /HelloWorld/HelloWor
Django 1.6 我在Django表单类中有一个工作代码块,如下所示。我用来构建表单字段列表的数据集可以包含任何字段的初始值,而我在表单中设置该初始值时没有成功。块,下面的块确实填充了初始表单字典属性,但未显示初始值。请注意(如果您想知道) 属性在 调用之前不存在。 这能做到吗? 如果是这样的话,我在做什么不正确的事情? 谢啦!