在django中动态设置默认表单值

时间:2011-08-25 04:09:10

标签: django forms dynamic

我正在尝试找到一种动态设置默认表单值的方法。因此,例如,如果我在我的网页上添加了facebook登录功能,并且我可以从facebook javascript返回的内容中获取他的名字和姓氏,我希望能够将这些值设置为新的“值”参数。给定的形式。 (基本上我可以把用户放在我的数据库中) 我希望有某种

{{ form.firstname.default = Javascript.return.firstname }}

我可以插入模板但是没有...... 有任何想法吗?谢谢。

编辑;;也许最好先将信息传递到views.py中?但是我该怎么做呢?我只是考虑在javascript字段中手写输入,这会很烦人......

2 个答案:

答案 0 :(得分:0)

您可以设置模板变量的默认值:

{{ form.firstname|default:Javascript.return.firstname }}

假设{{Javascript.return.firstname}}在该模板上下文中有效。

答案 1 :(得分:0)

Django生成的代码都是服务器端的,它的模板不能使用加载页面时不可用的任何东西。您需要使用javascript来设置值。

例如,如果您的表单如下所示:

<form id="login">
 <input name="firstname" />
</form>

你可以使用这个javascript(假设你正在使用jQuery):

// Do the facebook login, set the var fname to the first name, then:
$('#login [name=firstname]').val(fname);