问题标签 [generic-foreign-key]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
209 浏览

django - Django:使用泛型关系作为直通模型时返回对象

我有以下设置,我想用它来标记通用对象(目前只有一种类型,资源对象)。

我想要的是resource.platform/characteristics返回标签对象列表,而不是通过模型TaggedItem 对象。

不能完全弄清楚最好的方法来做到这一点。有什么想法吗?这甚至是明智的做法吗?

0 投票
3 回答
2326 浏览

python - GenericForeignKey 数据迁移错误:“content_object”是无效的关键字参数

我想为Comment具有GenericForeignKey关系的模型()创建数据迁移。我的模型是根据djangocontenttypes文档制作的。

楷模:

数据迁移

当我跑步时,./manage.py migrate我得到:

TypeError: 'content_object' is an invalid keyword argument for this function

我不得不说我使用create_comment了与视图内部相同的代码并且运行良好。

我使用 django 1.7.7。我不使用南方。

编辑: 我试过尚王的回答。

也不工作:

0 投票
0 回答
289 浏览

python - Django admin - 按 GenericForeignKey 的字段排序

我需要在列表显示上的 GenericForeignKey 字段上进行排序功能。

模型.py

管理员.py

我从Django admin尝试了这个admin_order_field :how to sort by a custom list_display fields that has no database field but

但是我在尝试排序时得到了 FieldError 。我需要能够按管理列表显示中的close_date字段进行排序。

提前致谢。

0 投票
1 回答
460 浏览

django - 在 Django 中,使用 GenericForeignKey 时是否需要将 db_index 添加到 object_id?

Django 的示例代码在https://docs.djangoproject.com/es/1.9/ref/contrib/contenttypes/

显示 object_id 没有db_index=True

虽然object_id可能会用于连接操作。

假设是db_index=True因为一些关于 GFK 的隐藏代码?或者我应该在需要时包含它?

0 投票
2 回答
149 浏览

mysql - Django GenereicForeignKey v/s 自定义手动字段性能/优化

我正在尝试建立一个典型的社交网站。主要有两种类型的对象。

  1. 照片
  2. 地位

用户可以喜欢照片和状态。(请注意,这两个是互斥的)意味着,我们有两个表 (1) 仅用于图像,其他仅用于状态。

现在,当用户喜欢一个对象(可能是照片或状态)时,我应该如何存储该信息。

我想为此设计一个有效的 SQL 模式。目前我正在使用 Genericforeignkey(GFK)

但是昨天我想如果我可以在不有效使用GFK的情况下做到这一点?

我能理解的唯一区别是,如果我想获取特定用户的所有 like_status,我必须进行两次查询

我对么?那么就易于查询/插入或性能等而言,最好的方法是什么?

0 投票
1 回答
822 浏览

python - Django升级:关系“django_content type”不存在

我将 django 版本从 1.7.5 升级到 1.9.2。所有迁移都运行了,但是当我运行测试时,我得到了以下错误。

我检查了数据库并且存在 django_content_type 模型。我正在使用 PostgreSQL。

我只在 PostgreSQL 上而不是在 Sqlite3 上收到此错误。

追溯

0 投票
2 回答
1337 浏览

python - How to use inverse of a GenericRelation

I must be really misunderstanding something with the GenericRelation field from Django's content types framework.

To create a minimal self contained example, I will use the polls example app from the tutorial. Add a generic foreign key field into the Choice model, and make a new Thing model:

With a clean db, synced up tables, and create a few instances:

So far so good - the relation works in both directions from an instance. But from a queryset, the reverse relation is very weird:

Why the inverse relation gives me again the id from the thing? I expected instead the primary key of the choice, equivalent to the following result:

Those ORM queries generate SQL like this:

The Django docs are generally excellent, but I can't understand why the second query or find any documentation of that behaviour - it seems to return data from the wrong table completely?

0 投票
1 回答
13047 浏览

python - 如何在 Django 中遍历 GenericForeignKey?

我正在使用 Django v1.9.4 和 PostgreSQL 9.2.14。使用以下型号:

创建一些实例来演示我的问题:

我无法在 django 中遍历 GFK,尝试过滤会引发异常,并提示添加GenericRelation. 但是通过相关查询名称使用通用关系bars并不能可靠地工作。例如:

我究竟做错了什么?


给未来读者的注意事项: 模板在 Django 1.9related_query_nameGenericRelation无法正常工作。

在合并 #25354的修复后,在Django 1.10 中添加了related_query_name 现在支持使用 '%(app_label)s' 和 '%(class)s' 字符串的应用程序标签和类插值。

如果您使用的是 Django 1.10,则可以继续将其GenericRelation放在抽象基类和模板上,related_query_name='%(app_label)s_%(class)s'以确保子类之间的唯一性。

0 投票
1 回答
250 浏览

django - 获取 GenericForeign 键对象的名称属性

我在 Django 应用程序中有以下模型:如何获取此模型中任何选定 content_object 的“名称”属性并将其显示在 modelAdmin 类的 list_display 中,而不仅仅是显示 GenericForeign Key 对象的键。请我真的需要帮助。

0 投票
1 回答
1067 浏览

django - Django 未能级联删除相关的通用外键对象

我的模型中定义了以下内容:

该模型将Task对象与link_choices元组中的任何模型链接起来。在这种情况下,accounts.Location模型在此列表中。

Location当删除对象导致相关对象的级联删除时,我的问题就出现了TaskLink。删除失败并显示以下错误消息:

视图是一个django.views.generic.DeleteView只有pk_url_kwarg参数和模型集的实例(以及添加到调度方法的权限装饰器);TaskLink在我将模型添加到组合之前,它工作了linked_object_fine 。

我错过了什么?

编辑:看来这可能是 Django 中的一个错误;当通过通用外键级联删除对象时,Django 会忽略您传递给该字段的构造函数的字段名称字符串,GenericForeignKey而是查找content_typeandobject_id字段,在我的情况下,该字段不存在。这有效地将模型可能必须的通用外键数量限制为 1,除非您不会遇到级联删除。

我已经通过 Django 邮件列表发送了这个问题,因为这种行为可能是故意的。