【问题标题】:Dynamically set default form values in django在 django 中动态设置默认表单值
【发布时间】:2011-11-03 08:14:46
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: django forms dynamic


    【解决方案1】:

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

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

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

    【讨论】:

    【解决方案2】:

    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);
    

    【讨论】:

    • 我真的不太了解 jquery/javascript 来告诉你真相。那么这条线会去哪里呢?你能指点我一个示例函数吗?
    • 登录成功时facebook代码调用的函数内部。
    猜你喜欢
    • 2010-10-10
    • 1970-01-01
    • 2013-01-20
    • 2016-02-06
    • 2019-04-14
    • 2011-11-21
    相关资源
    最近更新 更多