- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
所以我有一个看起来像这样的序列化器
class BuildingsSerializer(serializers.ModelSerializer):
masterlisting_set = serializers.PrimaryKeyRelatedField(many=True,
queryset=Masterlistings.objects.all())
效果很好
serializer = BuildingsSerializer(Buildings.objects.get(pk=1))
serializer.data
产生
OrderedDict([
("masterlistings_set", [
"0a06e3d7-87b7-4526-a877-c10f54fa5bc9",
"343643ac-681f-4597-b8f5-ff7e5be65eef",
"449a3ad2-c76c-4cb8-bb86-1be72fafcf64",
])
])
但是如果我将序列化程序中的查询集更改为
class BuildingsSerializer(serializers.ModelSerializer):
masterlistings_set = serializers.PrimaryKeyRelatedField(many=True, queryset=[])
我仍然得到完全相同的结果。
OrderedDict([
("masterlistings_set", [
"0a06e3d7-87b7-4526-a877-c10f54fa5bc9",
"343643ac-681f-4597-b8f5-ff7e5be65eef",
"449a3ad2-c76c-4cb8-bb86-1be72fafcf64",
])
])
这应该发生吗?我是否错误地使用了查询集?我用 [] 作为一个简单的例子来表明无论我输入什么都不会改变。
请任何见解都是无价的
需要注意的是,masterlistings有一个指向建筑物的主键关系。因此,Masterlisting 属于建筑物。
最佳答案
正如@zymud 所指出的,PrimaryKeyRelatedField 中的查询集参数用于验证用于创建新条目的字段输入。过滤掉 masterlistings_set 的另一种解决方案是使用 serializers.SerializerMethodField() 如下:
class BuildingsSerializer(serializers.ModelSerializer):
masterlisting_set = serializers.SerializerMethodField()
def get_masterlisting_set(self, obj):
return MasterListing.objects.filter(building=obj).values_list('pk',flat=True)
关于python - Django-REST 序列化程序 : Queryset does not filter PrimaryKeyRelatedField results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755755/
我正在关注 Django REST framework 教程,此时我在这里: http://www.django-rest-framework.org/tutorial/4-authenticatio
我的模型由 User 模型和 Present 模型组成。一个User可以有多个Present,但一个Present有一个唯一的User: 我的models.py是: from django.db im
我有以下型号: class ModelX(models.Model): STATUS_CHOICES = ( (0, 'ABC'), (1, 'DEF'),
Django Rest 框架有一个 PrimaryKeyRelatedField其中列出了我的 many-to-many 上的 ID与类别的关系... class CatalogueItemsSeri
我对 Django Rest Framework API 还很陌生。 我的问题是我可以在 serializers.Serializer 子类中声明一个 PrimaryKeyRelatedField 吗
我正在使用 DRF 来公开一些 API 端点。 # models.py class Project(models.Model): ... assigned_to = models.Ma
我的 pycharm、virtualenv 或系统遇到问题。 我使用 ubuntu、Pycharm 作为 IDE、python 3.6.3 和给定的库列表 dataclasses==0.6 Djang
我正在使用 Django REST Framework,我对这件事还很陌生。 我想在我的 JSON 输出中使用 manytomanyfield 和 foreignkey 字段的字符串表示而不是值。 模
我正在尝试根据序列化程序上的其他 bool 字段更改 serializers.PrimaryKeyRelatedField 的过滤器查找键,但我无法成功。 PrimaryKeyRelatedField
我是 DRF 的新手,并且我正在关注 DRF 的官方教程。 这是 snippet/serializers.py 文件中 UserSerializer 类的两个版本。 snippet 是应用程序名称。
我在 Django REST Framework 中遇到了一个奇怪的问题。我正在尝试使用 PATCH 请求向用户添加组或从用户删除组。 我可以修补到 /api/users/:id/ 以更新 group
我想知道您是否可以: 您可以在 django-rest-framework 中重命名 PrimaryKeyRelatedField 吗? 基本上是这样的: class TicketBaseSerial
http://django-rest-framework.org/api-guide/relations.html#primarykeyrelatedfield 我正在尝试写入 PrimaryKeyR
所以我有一个看起来像这样的序列化器 class BuildingsSerializer(serializers.ModelSerializer): masterlisting_set = se
如果您有大量数据,使用嵌套关系或PrimaryKeyRelated字段是否更好? 我有一个具有深厚关系的模型。 为了简单起见,我没有添加列。 型号: 用例: 用户创建1个带有2个锻炼和3个Workou
很抱歉提出这个新手问题,但我根本找不到阅读手册的方法。 型号 #Subject class TemaPai(models.Model): subject = models.TextFi
很抱歉提出这个新手问题,但我根本找不到阅读手册的方法。 型号 #Subject class TemaPai(models.Model): subject = models.TextFi
我是一名优秀的程序员,十分优秀!