gpt4 book ai didi

python - Tastypie,过滤多对多关系

转载 作者:太空狗 更新时间:2023-10-29 22:23:21 24 4
gpt4 key购买 nike

我有两个模型,它们通过多对多关系由另一个模型链接。

这是模型本身

class Posts(models.Model):
id = models.CharField(max_length=108, primary_key=True)
tags = models.ManyToManyField('Tags', through='PostTags')


class Tags(models.Model):
id = models.CharField(max_length=108, primary_key=True)
posts = models.ManyToManyField('Posts', through='PostTags')

class PostTags(models.Model):
id = models.CharField(max_length=108, primary_key=True)
deleted = models.IntegerField()
post_id = models.ForeignKey('Posts', db_column='post_field')
tag_id = models.ForeignKey('Tags', db_column='tag_field')

还有 tastypie 资源

class PostsResource(ModelResource):
tags = fields.ToManyField('django_app.api.TagsResource', 'tags', null=True)
class Meta:
queryset = Posts.objects.filter(deleted=0)
resource_name = 'posts'

class TagsResource(ModelResource):
posts = fields.ToManyField('django_app.api.PostsResource', 'posts', null=True)
class Meta:
queryset = Tags.objects.filter(deleted=0)
resource_name = 'tags'

在posttags表上有一个deleted标志,是否可以只在PostTags中的deleted标志为0时才返回链接结果?

我试过了this tastypie 中的 filter 属性,但它似乎只关心链接表(即标签或帖子)中的标志,而不关心进行链接的实际表。

最佳答案

您可以使用显示表名和字段名的 lambda 包属性过滤字段。

tags = fields.ToManyField('django_app.api.TagsResource', attribute=lambda bundle: bundle.obj.tags.filter(tags__deleted=0))

关于python - Tastypie,过滤多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11557790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com