我有一个Signup表单对象,我用它来创建一个注册页面。现在,我正在尝试将访客用户功能添加到应用中。所以我想在用户访问页面时自动创建一个用户帐户。我试图在后端创建表单对象,填充它并显式调用save方法。但是我找不到从后端填充字段的方法。我怎样才能做到这一点?
答案 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
这适用于任何模型类。您可以使用is来动态创建访客用户,如果您不了解客户端,则可以记录他/她。
当你决定是否认识一个客户时,这部分实际上很有意思,但我认为它不属于这个问题的范围。
答案 1 :(得分:0)
如果我理解你想要实现的目标,你可以创建一个form_data字典,然后实例化在dict中传递的表单。
form_data = { "key1": val1, "key2": val2, "key3": val3}
form = MyForm(data=form_data)
如果您使用基于类的视图,则可以在form_valid()方法中执行此操作。