具有外键和与同一模型的多对多关系的 Django 模型

2024-01-06

我有一个 django 模型如下:

class Subscription(models.Model):
    Transaction = models.ManyToManyField(Transaction, blank=True, null=True)
    User = models.ForeignKey(User)
    ...etc...

我正在尝试将 ManyToMany 字段添加到用户模型中,如下所示:

    SubUsers = models.ManyToManyField(User, blank=True, null=True)

但当我运行syncdb时出现此错误:

AssertionError: ManyToManyField(<django.db.models.fields.related.ForeignKey object at 0x19ddfd0>) is invalid. First parameter to ManyToManyField must be either a model, a model name, or the string 'self'

如果我将 User 用引号引起来,我会得到:

sales.subscription: 'User' has a relation with model User, which has either not been installed or is abstract.

我知道用户模型已正确导入。有什么想法为什么有 2 个字段指向用户模型会导致问题吗?提前致谢...


失败的原因是因为你的字段名称与类名称(User)相同。使用小写字段名称,这是 Django 和 Python 中的标准约定。看Django 编码风格 https://docs.djangoproject.com/en/1.3/internals/contributing/#coding-style

另外,您还需要添加一个related_name您的关系参数:

class Subscription(models.Model):
    user = models.ForeignKey(User)
    sub_users = models.ManyToManyField(User, blank=True, null=True, related_name="subscriptions")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有外键和与同一模型的多对多关系的 Django 模型 的相关文章

  • 如何在 django 中保存文件而不创建模型

    我想上传 excel 文件并将该文件保存到 django 中的特定位置 而不为该文件创建模型 我在这里尝试过 我的 forms py 文件 class UploadFileForm forms Form file forms FileFie
  • uwsgi协议比http协议快吗?

    我正在尝试部署 django 应用程序的各种设置 我的第一选择是使用带有 mod wsgi 的简单 apache 服务器 我之前已经实现了该服务器供私人使用 由于当前的部署是供公众使用的 因此我正在考虑各种选择 根据网上提供的信息 使用 n
  • UUIDField 的“默认”属性是否负责唯一性?

    我刚刚跳入 Django 进行一个快速项目 我想有一个UUID字段 https docs djangoproject com en 2 2 ref models fields uuidfield在模型中 我将其用于外部 id 字段 每个模型
  • Vagrant + Chef:配置错误“虚拟机上缺少 Chef 所需的共享文件夹。”

    我已经使用 Chef library Chef 安装了 Vagrant Virtualbox 当我做vagrant up第一次 食谱被正确加载 但是 当我事后进行配置时 无论是vagrant provision vagrant reload
  • Django 数据库迁移与 postgres 失败

    我对模型做了一些更改 然后运行了 python 管理 py makemigrations python 管理 py 迁移 我得到了这个回溯 Operations to perform Synchronize unmigrated apps
  • 如何向 django 中的用户模型添加自定义权限?

    默认情况下 在 django 中 当安装了 django contrib auth 的情况下运行syncdb时 它会在每个模型上创建默认权限 如 foo can change foo can delete 和 foo can add 要向模
  • Django - 以表单形式访问 request.session

    我按如下方式调用表单 然后将其传递给模板 f UserProfileConfig request 我需要能够访问表单中的 request session 所以首先我尝试了这个 class UserProfileConfig forms Fo
  • 每次都在django查询数据库中过滤查询集吗?

    想象一下我有以下代码 qs Users objects all list for i in range 10 list append qs filter age i 这里过滤器被调用 10 次 它是连接到数据库 10 次还是第一次使用过滤器
  • django:url 标签 -> 如何使用变量作为 url_name?

    我有一个 django 视图 它声明了一个目标变量 target name of next view to call return render request template locals 我想在我的模板中使用这个目标变量 我尝试了以下
  • Django 共享库/类

    我是 django 新手 正在寻找放置我的共享库的建议 我计划创建我想要在项目中的所有应用程序中使用的类 放置它们的最佳位置在哪里 例如抽象模型 regards 我们通常这样设置我们的项目 site init py manage py se
  • django-tables2:添加模型中未找到的新自定义列

    我有下表 class TaskTable tables Table def render foo self raise Exception class Meta model Task fields foo 对于以下型号 class Task
  • 无法在我的电脑中启动 django 服务器

    我通过以下方式导出了 django 项目的路径 export DJANGO SETTINGS MODULE Users masi Documents Test djangobook ch3 settings 我运行失败 django adm
  • 使用 Django 添加额外 \\ 字符的 JSON 编码

    我正在尝试创建一个函数 将包含消息和 Django 模型实例的字典转换为 JSON 然后我可以将其传回客户端 例如 我在 models py 中定义了模型 Test from django db import models class Te
  • 使用缓存时计算“页面浏览量”或“点击量”

    我有一个叫做show board 在其中 除其他外 我增加了一个字段Board views每次运行时加 1 以计算页面浏览量 问题是当我在该视图上使用 cache page 装饰器时 Board views仅在每次生成新的缓存视图时才会增加
  • JPA ManyToMany 产生的空联接表

    我有一个应用程序 其中我尝试使用 Hibernate 作为 JPA 提供程序来实现两个实体之间的多对多关系 我正在尝试的例子是一个单向的 其中一个相机可以有多个镜头 而镜头可以安装到多个相机中 以下是我的实体类 只需粘贴其中的相关部分 Ca
  • Python用Django请求Post请求数据

    我正在尝试向一个非常简单的 django 服务器发送一个简单的 post 请求 但无法理解为什么 post 数据没有出现在 requests post 字典中 而是出现在请求正文中 客户端代码 payload test test heade
  • django:如何在模板html页面内进行计算?

    您好 我正在使用缩略图插件来获取图像的宽度和高度 现在我想使用从缩略图插件获取的高度来定义 img 标签的填充 例如 img style padding top img height 2 src 但是我在这里遇到错误 django不允许这样
  • Django Ajax ModelForm 向 request.POST 提交一个空表单

    对于 django ajax 和 jquery 我是个新手 所以如果我的问题显得微不足道 我提前道歉 我已经在这个问题上摸不着头脑有一段时间了 但我正在尝试使用 ajax 和 jquery 通过 jQuery UI 提供的模式对话框窗口提交
  • Django 模型:如何使用 mixin 类来覆盖 django 模型以实现 save 等功能

    我想在每次保存模型之前验证值 所以 我必须重写保存函数 代码几乎是一样的 我想把它写在 mixin 类中 但失败了 我不知道如何写 super func 我英语不好 抱歉 class SyncableMixin object def sav
  • Django模型递归关系

    为什么要创建递归关系 aField models ForeignKey self 这和上面的一样吗 class aClass models Model aField models ForeignKey aClass 当您希望父节点和子节点具

随机推荐