模型中的用户 OneToOneField
Posted
技术标签:
【中文标题】模型中的用户 OneToOneField【英文标题】:User OneToOneField in model 【发布时间】:2016-11-10 22:01:21 【问题描述】:我会创建一个模型来扩展用户配置文件,我的模型是这样的:
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() 参数必须是字符串或数字,而不是“用户” django
【问题讨论】:
【参考方案1】:您应该在创建实例时使用关键字参数。
u = ExtendUser(user=user, phone=phone)
或者,如果您想使用 id 而不是用户:
u = ExtendUser(user_id=user.id, phone=phone)
【讨论】:
以上是关于模型中的用户 OneToOneField的主要内容,如果未能解决你的问题,请参考以下文章