我试图找到一种方法来动态设置默认的形式值。例如,如果我在我的网页上添加了facebook登录功能,并且我可以从facebook javascript返回的内容中获得他的名字和姓氏,我希望能够将这些值设置为给定表单中的新"value"参数。这样我就能把用户放到数据库中了我希望有什么
{{ form.firstname.default = Javascript.return.firstname }}
,我可以插入到模板中,但没有…什么好主意吗?谢谢你。
编辑;;也许最好先将信息传递到views.py中?但我该怎么做呢?我只是考虑在javascript字段中手写输入,这将是烦人的…
可以设置模板变量的默认值:
{{ form.firstname|default:Javascript.return.firstname }}
假设{{Javascript.return.firstname}}在该模板上下文中是有效的
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);