Django - 反向查询名称冲突

2024-02-16

我在 Django 中放置了一个循环外键,这导致了名称冲突。我不明白为什么会发生冲突或如何最好地补救。 (这是我第一次在模型中进行循环引用 - 所以我不确定这是否是问题的根本原因?)

对于以下情况:

class Supplier(models.Model):
    unique_id = models.IntegerField(unique=True)
    name = models.CharField(max_length=255, unique=True)
    rating = models.FloatField(null=True)
    last_updated = models.DateTimeField(auto_now=True)
    default_tariff = models.ForeignKey('Tariff')

class Tariff(models.Model):
    name = models.CharField(max_length=255)
    supplier = models.ForeignKey(Supplier)
    end_date = models.DateField(null=True, blank=True)
    payment_method = models.ManyToManyField(PaymentMethod) 
    region = models.ManyToManyField(Region)

错误是:

“Supplier.default_tariff”的反向查询名称与字段冲突 命名为“Tariff.supplier”。 提示:重命名字段“Tariff.supplier”,或添加/更改字段定义的 related_name 参数 '供应商.default_tariff'。


为了避免这种情况,您可以使用related_name https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.ForeignKey.related_name:

class Supplier(models.Model):
    unique_id = models.IntegerField(unique=True)
    name = models.CharField(max_length=255, unique=True)
    rating = models.FloatField(null=True)
    last_updated = models.DateTimeField(auto_now=True)
    default_tariff = models.ForeignKey('Tariff', related_name='+')

class Tariff(models.Model):
    name = models.CharField(max_length=255)
    supplier = models.ForeignKey(Supplier)
    end_date = models.DateField(null=True, blank=True)
    payment_method = models.ManyToManyField(PaymentMethod) 
    region = models.ManyToManyField(Region)

从评论中编辑:

当您设置 related_name="+" Django 不会创建向后关系。在这种情况下,关税与供应商模型不会有向后关系。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django - 反向查询名称冲突 的相关文章

  • Django SessionWizardView不执行done方法

    我无法让我的 SessionWizardView 工作 当我提交最后一步时 向导跳回第一步 不执行done方法 views py class CvWizardView CookieWizardView form list InfoPerso
  • HTMX 用于处理来自 django 后端的消息

    我想使用 HTMX 来显示来自 django 后端的消息 经过大量的试验和错误 我最终得到了一个可行的解决方案 我想把它留给任何寻找它的人 另外 请随时发表您的建议 不幸的是 除了一点点example https github com ad
  • Django + nginx + uwsgi 无法登录

    我有非常简单的登录逻辑 类似于官方 Django 解决方案 class Login FormView template name login html form class AuthenticationForm def get self a
  • 使用标签或 href 传递 Django 数据

    我有一个包含链接的表 当单击该链接进行更多操作时 我想将一些数据传递给我的函数 my html table tbody for query in queries tr td value a href internal my func que
  • 无法创建超级用户 Django

    我假设这是因为我的超级用户依赖于还没有现有数据的 UserProfile 我的模型看起来像 from django db import models from django contrib auth models import User f
  • Django Rest Framework——没有名为rest_framework的模块

    我已经使用安装了 django rest 框架pip install djangorestframework但当我运行 python3 manage py sycndb 时 我仍然收到此错误 导入错误 没有名为 rest framework
  • Django 不断迁移相同的外键

    我正在将现有数据库导入到它自己的 Django 项目中 我已经从数据库生成了初始模型 通过inspectdb 并且通过注释使 Django 能够一次控制每个表managed False表元设置中的行 我从简单的模型开始 在启用带有外键的表时
  • “WSGIRequest”对象没有属性“successful_authenticator”

    我已经创建了一个像这样的身份验证类 RESTful API 的令牌身份验证 是否应该定期更改令牌 https stackoverflow com questions 14567586 token authentication for res
  • django AuditTrail 与还原

    我正在开发一个新的网络应用程序 我需要将数据库中的任何更改存储到审核表中 此类审计表的目的是 稍后在真正的物理审计中 我们可以确定在某种情况下发生了什么 谁编辑了什么以及数据库当时的状态是什么 复杂的计算 所以大多数审计表将被写入而不是读取
  • 如何使用 javascript/jquery/AJAX 调用 Django REST API?

    我想使用 Javascript jQuery AJAX 在前端调用 Django Rest API 请求方法是 POST 但当我看到 API 调用它的调用 OPTIONS 方法时 所以 我开始了解access control allow o
  • 如何在 Django 中使用基于类的视图创建注册视图?

    当我开始使用 Django 时 我几乎使用 FBV 基于函数的视图 来处理所有事情 包括注册新用户 但当我更深入地研究项目时 我意识到基于类的视图通常更适合大型项目 因为它们更干净且可维护 但这并不是说 FBV 不是 无论如何 我将整个项目
  • Django 选择性转储数据

    是否可以有选择地过滤哪些记录Django的dumpdata管理命令输出 我有几个模型 每个模型都有数百万行 我只想转储一个模型中符合特定条件的记录 以及引用任何这些记录的所有外键链接记录 考虑这个用例 假设我有一个生产数据库 其中我的用户模
  • 如何在Django项目中使用PostgreSQL的存储过程或函数

    我正在开发一个 Django 项目 我决定在 PostgreSQL 中编写逻辑代码 而不是用 Python 编写 因此 我在 PostgreSQL 中创建了一个存储过程 例如 存储过程如下所示 create or replace proce
  • Django模型更新或创建具有唯一约束的对象

    有一个模型 class Proxy models Model host models CharField max length 100 port models CharField max length 10 login models Cha
  • Django:测试客户端的上下文在 shell 中为空

    我无法访问context的属性HttpResponse来自 ipython 的对象 但单元测试访问context 这是单元测试 测试运行正常通过 from django test import Client TestCase from dj
  • Django“和”Pinax 还是只是 Pinax?

    我正在开发一个个人项目 该项目已 完成 但现在我想添加一个社交应用程序 我认为 Pinax 已经为这项任务做好了准备 我想知道一些事情 我可以在我的项目中像 django 应用程序一样使用 pinax 吗 或者我需要使用 pinax 重新设
  • 如何从 Django 管理界面禁用“最近操作”小部件?

    我不想展示最近的操作小部件在 django 管理站点中 我不知道如何完成此操作 你可以覆盖admin index html禁用显示的模板 有 您可能想要更改 删除的侧边栏块 有条件地启用或禁用操作 ModelAdmin get action
  • Django 的内联管理:一个“预填充”字段

    我正在开发我的第一个 Django 项目 我希望用户能够在管理中创建自定义表单 并向其中添加字段当他或她需要它们时 为此 我在我的项目中添加了一个可重用的应用程序 可在 github 上找到 https github com stephen
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • Django 模型:默认日期时间未转换为 SQL CURRENT_TIMESTAMP

    我正在使用 Django 模型创建 PostgreSQL DB 我有一个 DateTimeField 我想将当前时间戳设置为默认值 我知道有多个消息来源建议如何做到这一点 但是 当我在 Django 之外检查数据库时 默认时间戳不会显示 我

随机推荐

  • 升级 vs 2012 更新 3 后无法连接到团队项目

    我最近将我的 Visual Studio 从 2012 update 1 升级到 update 3 自升级以来 团队资源管理器显示空的离线主页 按团队资源管理器的连接页面上的 配置团队项目 不会执行任何操作 我尝试修复 卸载和安装并删除团队
  • 如何在 Objective-C 中使用 Swift 非 NSObject 子类

    我在 Objective C 项目中使用 Swift 时遇到一些问题 例如 我使用以下库 https github com Hearst DD ObjectMapper https github com Hearst DD ObjectMa
  • jQuery 将浏览器名称添加到 css-class 中

    我使用 jQuery 来检测用户浏览器代理 然后将浏览器名称作为 css 类添加到正文中 这对于 webkit 和 mozilla 来说就像魔术一样 但是对于 msie 它失败了 但不知道为什么 对于msie 我不仅要添加 msie 还要添
  • 什么是 YUV 格式? (从一个不会玩的初学者的角度来看)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 视频质量指标称为VMAF https github com Netflix vmaf由 Netflix 评估 YUV 格式的视频 但什么是
  • Web 套接字会让 ajax/CORS 过时吗?

    在所有 Web 浏览器中使用 Web 套接字会使 Ajax 过时吗 因为如果我可以使用 Web 套接字来实时获取数据和更新数据 为什么还需要 ajax 即使我在应用程序启动时使用 ajax 只获取一次数据 我仍然可能想看看该数据在一段时间后
  • 如何从 iOS 上的音频文件中提取元数据

    我正在尝试使用 AVFoundation 框架从 mp3 和 m4a 文件中提取元数据 这是测试代码 void printMetadataForFileAtPath NSString path NSURL url NSURL fileURL
  • 使用 SQL 检查列是否包含文本

    我有一个名为studentID 但我有millions记录 并且应用程序以某种方式输入了一些任意文本在专栏中 我如何搜索 SELECT FROM STUDENTS WHERE STUDENTID CONTAINS TEXT 将数据库建模问题
  • 为什么 CSS 中引入了边距折叠规则?

    这套巧妙的规则什么时候可以发挥作用 它们打破了盒子模型的简单性 当您将不同的布局组合在一起时 它们会带来无限的麻烦 那么原因是什么呢 Rules http www w3 org TR css3 box collapsing margins供
  • ftp_ssl_connect 和 ftp_nlist

    我需要连接到远程系统以获取一些文件 远程系统的规格提到 所需的协议是 SFTP SSH 文件传输协议 端口号是22 首先 我使用 FTP 客户端应用程序尝试使用给定的凭据登录新服务器 起初我 遵循系统的规格 使用了通过 SSH 进行 SFT
  • JOptionPane 变灰一键

    我需要使用一个JOptionPane给用户两个选择 根据之前的操作 可能需要禁用其中一个按钮 是否可以与JOptionPane能够将其中一个按钮设置为禁用或启用吗 我怎样才能做到这一点 如果您使用 JButtons 这很容易 public
  • 在 PowerShell 中将控制台设置为最顶层

    因此 虽然有很多关于如何设置的建议forms最上面 我找不到任何可以让我的控制台在最上面运行的东西 所以我的问题是 如何让我的控制台在脚本期间运行在最上面 这需要一些 NET 互操作 如本博客中所述 TechEd 2012 中的脚本 第 1
  • worklight ant 任务应用程序部署 - WL 控制台安全性处于活动状态时出现未经授权的错误

    我正在尝试使用提供的 ant 任务 app deployer 将应用程序部署到 WL Server v5 0 5 这是我使用的简单构建文件
  • Pandas - 将内存中作为字符串存储的csv读取到数据帧

    将逗号分隔的文本存储在如下所示的 var 中 data Class Name Long Lat A ABC11 139 6295542 35 61144069 A ABC20 139 630596 35 61045559 A ABC03 1
  • Pandas 层次排序

    我有一个类别和金额的数据框 可以使用冒号分隔的字符串将类别无限嵌套到子类别中 我希望按金额降序排序 但以分层类型的方式如图所示 我需要如何排序 CATEGORY AMOUNT Transport 5000 Transport Car 490
  • 为什么 emma 不完全覆盖 finally 块?

    我不明白为什么艾玛没有为 finally 块提供完整的代码覆盖率 我制作了一个简短的示例程序来演示这一点 当我执行该程序时 它显示 try finally 所以我不明白为什么finally被标记为红色 未执行 而 finally print
  • 更改项目目标框架后应用程序设置错误

    在我的应用程序中 我正在使用用户设置 如下所述here http msdn microsoft com en us library aa730869 28v vs 80 29 aspx 然后我意识到在 VS 2010 中我使用的是 NET
  • 混合文件和循环[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我正在编写一个脚本 该脚本记录另一个程序的错误 并在遇到错误时从中断处重新启动该程序 无论出于何种原因 该程序的开发人员
  • 如何在 EF 查询中执行日期比较?

    请帮忙 我试图弄清楚如何在 linq 查询中使用 DATE 或 DATETIME 进行比较 例子 如果我想要今天之前开始的所有员工姓名 我会在 SQL 中执行以下操作 SELECT EmployeeNameColumn FROM Emplo
  • 如何从 proguard 构建中排除 R*.class 文件

    我距离制定此处描述的方法仅一步之遥 使用 Scala 2 8 Trunk 构建面向 Android https stackoverflow com questions 2761443 targeting android with scala
  • Django - 反向查询名称冲突

    我在 Django 中放置了一个循环外键 这导致了名称冲突 我不明白为什么会发生冲突或如何最好地补救 这是我第一次在模型中进行循环引用 所以我不确定这是否是问题的根本原因 对于以下情况 class Supplier models Model