问题标签 [generic-relations]

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 投票
1 回答
1589 浏览

django - Django 删除 GenericForeignKey

我正在尝试按照本教程实施活动提要。

当相应的对象(即评论本身)已被删除时,我想删除一个活动(即已添加评论)。这似乎没有级联。

有没有办法在不添加 GenericRelation 的情况下实现这一点?可以使用 postdelete 信号删除相应的活动。这是最好的方法吗?

0 投票
1 回答
616 浏览

django - 带有图像和外键的 Django 1.5 ModelForm 像管理员一样

我有以下型号:

我希望能够在我的前端视图/surfboard/add 中拥有与管理员相同的表单:

在下拉列表中添加带有外键的冲浪板并添加图像

作为一个新的 Django 粉丝和用户,我开始从头开始创建表单。无法通过将外键“quiver”包含在下拉列表中来做我想做的事,我在文档中找到了 ModelForm,并决定使用它,所以我得到了:

在我看来,它看起来像这样,它已经是一个好的开始:

在此处输入图像描述

所以现在,我想要一种同时添加图片的方法,它们通过通用关系链接到冲浪板。在这里,我找不到像在管理员中那样执行实现的方法,并且感到沮丧。有什么建议吗?

谢谢!

0 投票
1 回答
8516 浏览

django - 如何编写 django-rest-framework 序列化器/字段来合并通用关系中的数据?

我有具有指向各种其他对象的通用关系的对象,我需要将它们合并(内联),以便序列化的对象看起来像一个完整的对象。

例如:

序列化时,我想得到这样的东西:

我可以这样做吗?如果可以,怎么做?

我可以嵌套一个通用关系,我可以对 serilizer.data 进行后期处理以获得我想要的,但我想知道是否有更好的方法。

0 投票
1 回答
938 浏览

django - Django:一个模型中的多个通用关系是糟糕的设计吗?

我有一个具有多个通用关系的模型,在我的模板中使用它变得非常复杂。该模型是在“场地”和/或“音乐节”上举行的“演出”或音乐活动,并具有“音乐家”和/或“合奏团”。

复杂的地方在于,每个“演出”都有一个主持人、发起人和代理人。这些被设置为与其他模型(例如“PresenterCompany”)的通用关系。演示者公司可以是同一演出的发起人、演示者或代理,或所有这些人。以下是模型(为参考简化):

主要问题是,当我尝试为演示者公司获取所有演出时,我必须为每个角色编写三个不同的 for 循环,即 {% for gig in presentercompany.presented_gig.all %},等等......这似乎是多余的代码。

有没有更好的方法来构建它,例如为演示者、发起者和代理使用中间模型?谢谢你的建议!

0 投票
1 回答
109 浏览

django - 跨 Django 的复杂查询反向通用关系:可能吗?

我有以下Image课程GenericRelation

我正在尝试获取具有某些属性的所有图像,所以我这样做:

但这会导致以下错误:

不能这样查询吗?我能做些什么作为替代方案?

0 投票
2 回答
1433 浏览

django - Django 通用外键过滤(v1.5 和 v1.6 之间的区别)

我有以下概念模型:

在 Django v1.4 和 Django v1.5 中,以下查询可以正常工作:

它产生的 SQL (sqlite) 看起来像:

但是在 Django 1.6 中,查询失败并出现 FieldError:

发行说明中的​​以下声明可能是相关的:

Django 1.6 包含对 ORM 的许多更改。这些变化主要分为三类:

  1. 错误修复(例如,通用关系的正确连接子句、查询组合、连接提升和连接修剪修复)

我的问题是,Django 1.6 中的哪些变化导致了它的崩溃?我是否坚持extra在 Python 中使用或执行这种类型的过滤?

0 投票
1 回答
637 浏览

python - 如何过滤通用外键?

我有这些模型:

EventEntry 类用于将日程安排信息附加到任何对象,例如会议和里程碑。

ObjectPerm 类为需要保护的任何模型提供对象级权限。

当我创建一个会议实例时,我为日程信息分配了一个 EventEntry 实例。我还分配 ObjectPerm 实例来指定哪些用户可以访问会议对象。

还有更多模型,例如 Meeting 和 Milestone。

现在,我要做的是检索 EventEntry 实例,但仅检索用户有权访问的相关对象的实例,基于 ObjectPerm 模型。

例如,public == True 或用户位于 EventEntry 字段“用户”中的所有 EventEntry 实例。这样我可以提取所有事件以显示在日历中,但我不需要过滤会议、里程碑等。除了我不知道如何使用 Django 的 ORM 在 Python 中编写这个过滤器。

0 投票
1 回答
646 浏览

python - 带有 Django REST API 和 generic_relations 的 ValidationError 用于通用外键可写访问

我正在使用 Django REST API 和generic_relations模块来创建 Django Comments 的一种变体,它不是由模板驱动,而是通过 REST API 函数。

名为 Annotation 的 Model 类如下所示:

现在,还有另一种模型,用于内容,几乎可以是任何东西,所以可以说,它是一个简单的发布应用程序:

相同的序列化程序如下所示:

现在,问题出在这一行: content_object = GenericRelatedField({ BlogContent: serializers.HyperlinkedRelatedField(view_name='annotation:blogcontent-detail'), }, read_only=False)

如果泛型关系被用作只读,通过设置read_only=True,那么 REST API 可浏览性很好,但是当我将它切换到False时,服务器会返回一个 ValidationError

仔细阅读日志和代码,似乎在rest_framework.renderers.pyatget_raw_data_form(self, view, method, request)调用中找不到对象obj = getattr(view, 'object', None)

这反过来,在评估field_to_native函数 as serializer = self.determine_deserializer_for_data(value)in 时generic_relations,会导致 as 不传递任何内容,value因此代码中断。

有没有其他人也遇到过这样的错误和/或可以帮助我修复它?请帮忙!

回溯如下:

0 投票
2 回答
332 浏览

python - Python 获取 GenericRelation 对象

我有以下代码:

数据/电话.py

模型.py

不,我想提供一个功能来检索用户的每个电话号码,如下所示:

问题是,该线路print(self.telephonenumbers.all())不打印任何电话号码,即使已经提供了很多。返回的字典也是空的。

如何访问保存在Staff上下文中的 GenericRelation 对象?

编辑:

以下代码:

给我保存的每个电话号码,并通过tel.of电话号码所属的正确员工用户。

那么为什么不self.telephonenumbers.all()工作(self.user也返回应该保存电话号码的正确用户)?

0 投票
1 回答
762 浏览

django - 模型 Mixin 中的 Django GenericRelation

我有混合和模型:

但是 django 不会将GenericRelation字段变成GenericRelatedObjectManager

当我将字段放入模型本身或抽象模型时 - 它工作正常:

如何GenericRelation在 mixin 中使用?