创建一个django表单对象并保存它

时间:2015-04-01 14:08:01

标签: python django

我有一个Signup表单对象,我用它来创建一个注册页面。现在,我正在尝试将访客用户功能添加到应用中。所以我想在用户访问页面时自动创建一个用户帐户。我试图在后端创建表单对象,填充它并显式调用save方法。但是我找不到从后端填充字段的方法。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

如果您想在视图中创建一个模型实例(在本例中为User),而不是来自某些POST或GET数据的数据,那么请不要使用表单,而是模型的API。

例如User类提供了这个辅助函数(例子来自文档):

from django.contrib.auth.models import User

user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')

此处有更多详情: https://docs.djangoproject.com/en/1.7/topics/auth/default/#user-objects

在这里: https://docs.djangoproject.com/en/1.7/ref/contrib/auth/#django.contrib.auth.models.UserManager.create_user

这适用于任何模型类。您可以使用is来动态创建访客用户,如果您不了解客户端,则可以记录他/她。

当你决定是否认识一个客户时,这部分实际上很有意思,但我认为它不属于这个问题的范围。

答案 1 :(得分:0)

如果我理解你想要实现的目标,你可以创建一个form_data字典,然后实例化在dict中传递的表单。

form_data = { "key1": val1, "key2": val2, "key3": val3}
form = MyForm(data=form_data)

如果您使用基于类的视图,则可以在form_valid()方法中执行此操作。