我有兩個模型通過多對多關係由另一個模型鏈接。Tastypie,過濾多對多關係
這裏的模型本身
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桌子上有一個刪除標誌,是否有可能只返回鏈接的結果時,在PostTags刪除標誌是0?
我試過this tastypie中的filter屬性,但它似乎只關心鏈接表(即標籤或帖子)中的標誌而不是實際的鏈接表。
您是否嘗試過'查詢集= Posts.objects.filter(posttags__deleted = 0)'梅塔對於每個資源? – astevanovic 2012-07-19 12:24:33
這很奇怪,那是一半的作品。就像我打印queryset.query一樣,它正在執行正確的SQL語句(就像它在delete = 0的地方那樣)。但通過api請求返回的結果似乎仍然忽略了該標誌。 – Shane 2012-07-19 13:54:41