【问题标题】:ManyToOne relationship with User database与用户数据库的多对一关系
【发布时间】:2019-07-21 20:46:51
【问题描述】:

我想创建一个与用户数据库具有多对一关系的模型。

这是我用于该字段的代码:

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

class user_extended(models.Model):
    user_ID = models.ManyToOneRel(User)

迁移不起作用。它返回类型错误:

TypeError: init() 缺少 1 个必需的位置参数:'field_name'

我应该如何与用户数据库建立关系?

【问题讨论】:

  • 这个文件中定义了User吗?

标签: django django-models


【解决方案1】:

我们在 Django 上使用ForeingKey 定义多对一关系。所以你应该改变

user_ID = models.ManyToOneRel(User)

user_ID = models.ForeignKey(User, on_delete=models.CASCADE)

查看 Django 的文档:https://docs.djangoproject.com/en/2.1/topics/db/examples/many_to_one/

【讨论】:

【解决方案2】:

如果你想要一个 ManytoOne 关系(许多 user_extended 到一个 User),你可以这样做:

from django.db import models
from django.conf import settings

class user_extended(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

注意:类名应为 CamelCase,如:UserExtended

【讨论】:

    猜你喜欢
    • 2015-11-05
    • 2012-12-26
    • 2013-06-21
    • 1970-01-01
    • 2011-07-30
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    相关资源
    最近更新 更多