Django有一个内置的管理页面,其中包含添加/编辑/删除用户(及其身份验证)的功能。
但是,我需要创建一个涉及以下模型的自定义表单
雇员/ models.py
# Stores profile details such as DoB, Martial Status, TFN and so on
class Profile(models.Model):
user = models.OneToOneField(User)
MARTIAL_STATUS = (
('s', 'Single'),
('m', 'Married'),
('d', 'Divorced'),
('w', 'Widowed')
)
martial = models.CharField(max_length=1, choices=MARTIAL_STATUS, null=True)
tfn = models.CharField(max_length=200, blank=False)
我想要做的是有一个表单,用户可以在其中输入有关用户名,first_name等的信息以及我的模型中所需的所有字段。
到目前为止,这就是我所做的
注意在插入其他信息(来自不同型号)之前,如何首先创建帐户
ps:我正在使用Django ver 1.6
答案 0 :(得分:2)
如果我理解正确,您需要创建自定义用户,以便将其添加到管理网站中的个人资料表单中。你为什么不用django shell?例如:
manage.py所在的位置,打开终端/命令提示符并键入:
>>python manage.py shell
In [1]: from django.contrib.auth.models import User
In [2]: i=User(username="test")
In [3]: i.save()
In [4]: i.set_password('test')
In [5]: i.save()
您可以使用此用户名/密码登录网站。
假设您的管理员网址类似于www.mysite.com/admin,您可以直接访问用户,例如:www.mysite.com/admin/auth/user/add/。管理界面也是这样的:。
如果您想添加电子邮件地址和其他数据,可以按下save and continue editing
,如下所示:
这将引导您更新用户内容。
如果您不想从管理站点创建用户,那么使用UserCreationForm实现用户注册的方法则不那么痛苦。
from django.views.generic.edit import CreateView
from django.contrib.auth.forms import UserCreationForm
urlpatterns = patterns('',
url('^register/', CreateView.as_view(
template_name='register.html',
form_class=UserCreationForm,
success_url='/'
)),
url('^accounts/', include('django.contrib.auth.urls')),
# rest of your URLs as normal
)
你必须在这里创建一个register.html,但是:
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Create" />
</form>
答案 1 :(得分:0)
我通常从the documentation full example开始,然后根据我的需要调整它。您保留Django权限,但您还添加了一些custom permissions。
我不知道你的项目有多远,但如果你刚开始我建议你使用Daniel Greenfield的twoscoops templates或cookiecutter-django。它还实现了django all auth库,这对社交认证非常有用。
答案 2 :(得分:0)
+
模型下拉框附近应该有user
符号,这样可以让用户快速添加,如下所示。
如果注册user
的{{1}}模型我认为您可以动态创建它。
作为上述答案的Ruddra's,您已创建所有用户个人资料,然后您可以直接填写表格。