Django手动创建用户帐户

时间:2014-07-15 04:01:56

标签: python django django-forms

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等的信息以及我的模型中所需的所有字段。

到目前为止,这就是我所做的django-form

注意在插入其他信息(来自不同型号)之前,如何首先创建帐户

ps:我正在使用Django ver 1.6

3 个答案:

答案 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/。管理界面也是这样的:enter image description here

如果您想添加电子邮件地址和其他数据,可以按下save and continue editing,如下所示:enter image description here

这将引导您更新用户内容。enter image description here

如果您不想从管理站点创建用户,那么使用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>

详细信息:http://www.obeythetestinggoat.com/using-the-built-in-views-and-forms-for-new-user-registration-in-django.html

答案 1 :(得分:0)

我通常从the documentation full example开始,然后根据我的需要调整它。您保留Django权限,但您还添加了一些custom permissions

我不知道你的项目有多远,但如果你刚开始我建议你使用Daniel Greenfield的twoscoops templatescookiecutter-django。它还实现了django all auth库,这对社交认证非常有用。

答案 2 :(得分:0)

+模型下拉框附近应该有user符号,这样可以让用户快速添加,如下所示。

enter image description here

如果注册user的{​​{1}}模型我认为您可以动态创建它。

OR

作为上述答案的Ruddra's,您已创建所有用户个人资料,然后您可以直接填写表格。