问题标签 [django-related-manager]

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 回答
411 浏览

django - Django ManyToMany 中介模型,移动关系

因此,在阅读有关中间模型的文档之后,似乎没有内置的方法可以在不清除与该侧的所有关系的情况下更改关系的一侧。

但是我怎么能这样做呢?我在想我可能必须将所有关系存储在一个数组/对象中,以便在需要更改 1 个或多个关系时重新创建它们。

我的模型:

我想改变和之间的关系Company 1和。所以为了做到这一点,我必须清除和其他相机之间的所有关系?Camera 1Company 1Camera 2Company 1

任何想法将不胜感激!

0 投票
1 回答
68 浏览

django - 直到最后一个孩子为止,最djangoish的方式是什么?

我正在努力寻找一种有效的方式来处理 Django m2m 关系。

我的用例是:

  • 我从表单接收到一个字符串,并用这个字符串更新一个元素的状态。
  • 如果这个元素有子元素,我用相同的值更新它们的状态。
  • 如果那些孩子元素有自己的孩子,那么我会更新状态并通过他们的孩子等..

我的模型 m2m 字段如下:parent = models.ManyToManyField('self', blank=True, default=None, symmetrical=False, verbose_name="")

目前我写了这样的东西:

但这绝对不是递归的。我需要遍历每个孩子,直到只有孩子元素。我不知道什么是最pythonish/djangoish的方式来做到这一点。

提前感谢您的帮助。

0 投票
1 回答
4019 浏览

django-models - Django - 获取相关对象

我有 3 个模型(比如说 A、B、C)。模型C具有AB作为外键。现在我有A 的primary_key,我想检索相关B对象的列表。

我想要B的整个对象,而不仅仅是我可以使用 values() 或 values_list() 获得的字段。我的模型如下:

0 投票
1 回答
7781 浏览

python - Django:从特定用户获取所有对象

尝试显示用户的所有Announce对象时出现问题。我的问题是:考虑我以 id=1 的用户身份登录。当我转到/users/1/时,它会显示我所有的帖子。但问题是,当我想通过转到 /users/2/ 显示另一个 id=2 用户的所有帖子时,它仍然显示我所有的 Announce 对象,而不是 id=2 的用户。

模型.py

视图.py

网址.py

user_announces_list.html

我是否必须使用某种类似: Announce.objects.get(pk=???) ?

我感谢您的帮助!

0 投票
2 回答
1037 浏览

django - 如何:创建视图和序列化程序,用于添加、编辑和删除具有外部关系的对象 django rest framework

我很难连接关于如何创建允许外键的视图和序列化程序的 django 和 django rest 框架上的所有文档。

编辑:我可能在这里有一个答案:http: //www.django-rest-framework.org/api-guide/relations/#writable-nested-serializers

示例我有这些模型。

我希望能够选择一个城市,然后查看该城市拥有的所有社区,并能够添加社区、编辑社区和删除社区。

所以也许是获取城市所有社区或为城市创建新社区的 url

和一个编辑和删除邻域:

我目前正在使用DRF Generics的ListCreateAPIViewRetreiveUpdateDestoryAPIView

我知道我们有这样的选择query_setrelated,可以让我们获得模型所具有的所有关系。

我知道我们可以x_set选择。在我的例子中像这样使用。Searchcity.SearchNeighborhood_set.all()

我知道我们有相关的序列化程序

我创建它们的正确方法是这样的:

但是在这个用例中我该如何使用它呢?

http://www.django-rest-framework.org/api-guide/relations/#serializer-relations

关于获取关系中的所有对象有一个很好的参考链接在这里 http://gregblogs.com/tlt-how-to-retrieve-the-fields-of-a-related-model-from-a-django-休息框架端点/

但这适用于编辑、删除相关对象吗?

最终我做了很多研究,但我正在寻求帮助以填补裂缝并真正理解这件事。这是一个常见的用例,我相信你们中的许多人以前都做过。

编辑:

看起来这个问题间接地回答了我的问题,但我仍然不确定。我将继续研究并测试它。看看我发现了什么。

删除用作外键的对象

0 投票
1 回答
551 浏览

django - 在 django 模型 django rest 框架中使用外键集

我有一个有趣的问题。我在关系管理器中使用 ForeignKey 调用。即,如果我想要来自称为hamsters调用的相关模型的所有对象hamsters_set

现在这是一个附加到序列化程序的工作模型,一切都在这个实现中工作。

但是对于这个我试图做同样事情的新模型,我得到了一个attribute error

AttributeError:尝试获取roomimage_set序列化程序上的字段值时出现 AttributeError RoomAndImageSerializer。序列化器字段可能命名不正确,并且与QuerySet实例上的任何属性或键都不匹配。原始异常文本是:“QuerySet”对象没有属性“roomimage_set”。

相当有趣,因为这两个实现似乎是相同的。谁能抓住我做错了什么?

0 投票
2 回答
34 浏览

django - 如何检查模型是否在模型外键集中?django,django rest框架

我有一个与场地具有多对一关系的房间模型。

一个场地可以有很多房间。

我正在尝试在我的休息框架中设置我的 http 方法,这样当我添加权限时,事情就会很好地工作。

因此,如果说有人想从场地中删除一个房间,我必须确保 1 该人有权访问该场地 2 该房间已连接到该场地

我想获取场地模型,然后获取场地模型 room_set 并检查 room_set 以查看是否存在带有我要删除的模型的房间主键的房间。

到目前为止我所拥有的:

我希望我可以对场地房间进行交互并检查场地房间中的每个对象,但我有一种强烈的感觉,因为场地房间不是 python 对象,所以它不会工作?也许是的。我将在执行 for 循环后更新这个问题,或者如果我发现一切正常,我可能会删除它。

我的问题是如何设置房间并检查我正在寻找的房间是否在其中。

所以正如我所料,我尝试的代码出错了:

我得到的错误:

关于我能做什么的任何想法?

新编辑:

所以我实现了下面的答案并添加all()到我的场地房间定义中

但现在我有一个新错误。这个没有意义,因为我明显覆盖了 for 循环中的 None 属性。

错误:

0 投票
2 回答
4804 浏览

python - 具有反向关系的 Django REST 框架序列化程序

我有两个模型与模型employee有关系person但与模型person没有关系employee

喜欢:

在这种情况下,我需要code人员序列化程序中的字段数据。


我可以通过在人物模型中编写方法或在人物序列化程序中使用SerializerMethodField来解决这个问题

像这样:

并将其添加为个人序列化程序中的源

或将员工序列化程序添加到人员序列化程序中


但我试图用反向关系来做到这一点,但我做不到。我试过这样,它给出了一个错误

序列化器:

我怎样才能用反向关系解决这个问题?

0 投票
0 回答
172 浏览

django - 预取相关未按预期工作

我正在使用 Django 1.11.11 和 python 3.6.4 开发一个 API。我有以下模型:

我正在执行以下查询:

那么,我可以这样做:

但是,这甚至是与 prefetch_related 相关的新调用,我做错了什么?

提前致谢

0 投票
0 回答
53 浏览

django - 如何使用带有 through_fields 的 M2M 模型实现添加视频的表单?

我有这个问题的模型:

我应该如何实现一个表单,让我创建一个新视频,以及使用这些模型的相关类别和标签,记住它拥有的和中间表使用through_fields

注意:在我改写它之前,使用编辑历史(修订)查看以前的问题。