用户OneToOneField在模型中

时间:2016-07-08 10:52:32

标签: django django-models django-views django-users

我会创建一个扩展用户配置文件的模型,我的模型是:

from django.db import models
from django.contrib.auth.models import User

class ExtendUser(models.Model):
    user = models.OneToOneField(User)
    #
    phone = models.CharField(max_length = 20)
    def __unicode__(self):
        return u"%s" % (self.phone)
    class Meta:
        verbose_name_plural = "ExtendUsers"
在shell中我尝试以这种方式扩展用户配置文件:

u = ExtendUser(user.id, phone)
u.save()

但是获取模型为空,而不是user.id传递用户获取此错误:

  

TypeError:int()参数必须是字符串或数字,而不是' User'   django的

1 个答案:

答案 0 :(得分:3)

创建实例时应使用关键字参数。

u = ExtendUser(user=user, phone=phone)

或者,如果您想使用id而不是用户:

u = ExtendUser(user_id=user.id, phone=phone)