如何在django中创建管理员用户并将其链接到模型?

时间:2013-05-07 16:37:21

标签: python django django-admin

我正在为这样的人建模:

class Person(models.Model):
    """ Represent a person who has credentials. The person may have
    devices and/or accessories. """ 

    #basic information
    name = models.CharField(max_length=50, unique=True)
    email = models.CharField(max_length=50, unique=True)
    phone_number = PhoneNumberField(unique=True)

但我希望能够添加以下内容:

/* create admin user with a group priveledge*/
user_account = #link to user account here

我这样做是因为当我添加人物时,我希望他们拥有一个带有某些privelidges的帐户。

感谢任何可以提供帮助的人......

2 个答案:

答案 0 :(得分:1)

它全局依赖于您正在使用的Django版本,因为用户模型和继承已随Django 1.5更改。

您可能需要查看Django官方文档:https://docs.djangoproject.com/en/dev/topics/auth/customizing/#extending-the-existing-user-model

干杯, ķ。

编辑19:30 CEST:您应该关注Django文档网站右上角的开关,以确保您正在查看正确的文档(即关于Django版本的文档)重新使用)。从1.5开始,Django添加了一个很棒的东西:不仅仅是“关联”用户模型,还扩展它。 https://docs.djangoproject.com/en/dev/topics/auth/customizing/#substituting-a-custom-user-model

而且,我想你想通过自动管理员添加用户,你也应该照顾这一段:https://docs.djangoproject.com/en/dev/topics/auth/customizing/#custom-users-and-django-contrib-admin

唯一的事情是你必须运行Django 1.5+才能做到这一点。 Django 1.4和更小的只是让你添加一个相关的模型,但还不是很糟糕:)。

答案 1 :(得分:0)

我们可以说你想要的只是只是一个有更多信息的用户吗?

或者有没有你会说

的情况
  • “某人可能不是用户”和/或
  • “用户可能不是一个人”

使用简单的外键系统可以实现这里所描述的内容。制作一个新模型这样的人:

class Person(models.Model):
  ... some infos here ...
  user = model.ForeignKey(User)

然后,你只需创建用户,然后创建Person。有很多方法可以让Django在创建User对象时自动创建Person对象。这篇博文可能会以正确的方式推动您:http://www.turnkeylinux.org/blog/django-profile

也许你应该遵循它,然后向我们解释你错过了什么?

再次干杯。

ķ。