【问题标题】:User OneToOneField in model模型中的用户 OneToOneField
【发布时间】: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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多