django - 模型中的用户 OneToOneField

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

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() argument must be a string or a number, not 'User' django

最佳答案

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

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

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

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

https://stackoverflow.com/questions/38264877/

相关文章:

java - 检查字符串中是否存在模式

java - 这个While 循环可以简化吗?

java - 在NIFI中创建自定义 Controller 服务时无法生成扩展的文档

java - 如何将充满 if 语句的 for 循环更改为更优雅/高效的代码?

java - Java 中的静态方法调用是如何工作的?

intellij-idea - IdeaVim:如何在不使用箭头键的情况下循环浏览列表项?

r - 从列值比较中确定 R 数据框行值

java - 为什么 Double::compareTo 可以作为 Stream.max(Compa

r - 如何原型(prototype)(启动)从其他插槽派生的 S4 插槽?

firebase - iOS 离线时的 FCM 行为