在views.py中使用django.contrib.auth.models.User是否合适?

时间:2014-07-19 01:22:47

标签: django

我想在我的IPN视图中创建和删除用户。

django.contrib.auth.models import User

或者这一切都应该在models.py中完成吗?如果是这样,我该怎么做?

不确定它在技术上是错误的还是只是坏的风格。

非常感谢!

2 个答案:

答案 0 :(得分:5)

我认为最佳做法是使用django.contrib.auth.get_user_model()代替。

from django.contrib.auth import get_user_model
...

User = get_user_model()

这样一来,如果你以后决定包含一个扩展或覆盖内置身份验证模型的django应用程序(它还避免了一类与依赖循环相关的错误),事情就不会中断。

答案 1 :(得分:2)

是的,在views.py中使用它是正确的:

你可以获得像paulo scardine这样的用户模型,即:

from django.contrib.auth import get_user_model
User = get_user_model()

现在创建用户:

User.objects.create_user(username='user2', password='pass')

现在删除用户:

  

建议您将is_active标记设置为False而不是删除帐户;这样,如果您的应用程序有任何外键给用户,外键不会中断。doc

user_rem=User.objects.get(username='user2')
user_rem.is_active=False
user_rem.save()