【问题标题】:foreign key in django_modelsdjango模型中的外键
【发布时间】:2019-02-06 05:07:11
【问题描述】:

在 pgAdmin 我创建我的表:

在这个表中有2列由“外键”连接到其他表的列:

如何在 django 模型中创建此表? “我在 django 中使用 postgresql”。

【问题讨论】:

    标签: django postgresql django-models


    【解决方案1】:

    您可以制作一个Gift 模型,例如:

    #  app/models.py
    
    from django.conf import settings
    from django.db import models
    
    class Gift(models.Model):
        gift = models.CharField(50)
        user = models.ForeignKey(
            settings.AUTH_USER_MODEL,
            on_delete=models.CASCADE,
            related_name='gift_set'
        )
        invited = models.ForeignKey(
            settings.AUTH_USER_MODEL,
            on_delete=models.SET_NULL,
            null=True,
            related_name='invited_gift_set'
        )

    由于您没有指定“触发器”,因此我在user_id 列中使用CASCADE,在invited_id 列中使用SET_NULLL

    【讨论】:

    • 使用python manage.py inspectdb 也可能有助于获得有效的models.py
    • @Jieter:一个潜在的问题是并非所有数据库都具有等效的 Django 模型。例如,如果您将两个外键添加到同一列,那么从技术上讲,该列同时引用两个模型。我对这些工具的经验是,从长远来看,它们弊大于利,因为大多数人认为“一切都很好”。它看起来有点像旧的编译器 - 编译器,必须手动填充缺失的元素。根据某些规范更改 LALR 解析器非常复杂。
    猜你喜欢
    • 2015-03-07
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 2019-07-19
    • 2015-01-29
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多