Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么';这是处理以不同方式创建超级用户的最佳方法?_Python_Django - Fatal编程技术网

Python 什么';这是处理以不同方式创建超级用户的最佳方法?

Python 什么';这是处理以不同方式创建超级用户的最佳方法?,python,django,Python,Django,在我的Django 1.6.5项目中,我的用户注册表单创建了一个UserProfile,它与创建的用户具有一对一的关系。我的观点认为,当用户登录时,他/她在数据库中有一个关联的UserProfile 但是,超级用户是通过manage.py文件创建的,并且没有关联的UserProfile,这会导致视图抛出错误。这不是一个大问题,因为我将是唯一一个超级用户登录的人,但这样离开网站似乎仍然是个坏主意 如果没有UserProfile,应用程序实际上无法执行任何操作,那么我是否应该在特殊情况下编写代码,在

在我的Django 1.6.5项目中,我的用户注册表单创建了一个
UserProfile
,它与创建的
用户具有一对一的关系。我的观点认为,当用户登录时,他/她在数据库中有一个关联的
UserProfile

但是,超级用户是通过
manage.py
文件创建的,并且没有关联的
UserProfile
,这会导致视图抛出错误。这不是一个大问题,因为我将是唯一一个超级用户登录的人,但这样离开网站似乎仍然是个坏主意

如果没有
UserProfile
,应用程序实际上无法执行任何操作,那么我是否应该在特殊情况下编写代码,在这种情况下,视图会抛出一个明确的错误,警告用户他/她已作为超级用户登录,无法使用网站?我还可以为超级用户手动创建一个
UserProfile
,但这似乎很愚蠢

或者有没有办法在数据库级别强制每个
用户
都有一个
UserProfile
?如果是这样,我将如何与
用户配置文件同时创建超级用户,因为它是从命令行创建的?

将它们分开:

  • 如果您想查看用户的外观,请像其他人一样使用用户帐户
  • 如果你想搞乱管理员,请使用你的超级用户帐户
  • 如果应用程序足够大,我会在管理员中添加“loginas”功能,这样我就可以成为用户(出于支持目的,所以我不必询问他们的密码)
  • 对于测试环境,我知道我会运行一个脚本,将所有用户的密码更改为相同的内容(因此我可以自由测试许多帐户/场景)

虽然从默认的django用户继承/扩展/封装用户可能更为传统。我们走吧

您可以尝试从
post\u save()
signal of
User
model创建配置文件。是否有办法使超级用户帐户仅适用于管理员站点?我的问题是,如果你从管理站点登录并访问主站点,它将被视为有效用户,这是我不想要的。是的,这很痛苦。为什么不将配置文件附加到超级用户?或者将用户升级为超级用户并删除默认超级用户?