关于django.contrib.auth.models源代码的一些内容

时间:2015-12-04 03:43:01

标签: python django django-models

这是我提出的最后一个问题,但这仍然是错误的方式。 it is here。所以

追溯在这里:

>>>from app1.models import UserReg

>>> UserReg.objects.create_user(username=u'hello world')
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Python27\lib\site-packages\django\contrib\auth\models.py", line 187,
in create_user
    **extra_fields)
  File "C:\Python27\lib\site-packages\django\contrib\auth\models.py", line 180,
in _create_user
    date_joined=now, **extra_fields)
TypeError: __init__() got an unexpected keyword argument 'username'

我在django包中看到了models.py,但似乎我没有任何错误。如果你能指出我在django的AbstracteUser模型中的错误,我会认定它。

如果你有任何需要我补充的话,我愿意。请:((。

3 个答案:

答案 0 :(得分:0)

我认为,UserReg是您的UserProfile模型,它与来自auth app的django用户模型具有OneToOne关系。

然后您需要先使用django的用户模型

创建一个新用户
from django.contrib.auth.models import User

user = User.objects.create_user(username='hello world')

userreg = UserReg(user=user) 
# we create UserReg instance for 'user'
# if UserReg has a 'user' OneToOne Field 

userreg.save()

答案 1 :(得分:0)

我很抱歉这个愚蠢的问题,但同时我很感激所有的答案。在过去的两天里,我看了一百个 问答。谢谢。

=========================================

我忘记了__init__()的使用情况,我在other name中插入了名为username但未命名为__init__()的参数,因此在链接中,您可以看到回溯。

最后,谢谢,我是一个django乐趣。

答案 2 :(得分:0)

您的模型中没有名为username的字段,因此您无法将其传递给__init__方法。