我有一个简单的多对多关系概述如下:
class Client(models.Model):
"""
just stores a Client hostname now
"""
hostname = models.CharField(max_length=250, null=False, blank=False, unique=True)
def __unicode__(self):
"""
"""
return str(self.hostname)
class Run(models.Model):
clients = models.ManyToManyField(Client)
使用django-rest-framework我现在有过滤器来识别特定客户端:
“/ api / runs /?clients = 1”与主键为1的客户端一起工作并检索所有运行。
如何启用允许“/ api / runs /?clients = myhostname”的过滤器?
答案 0 :(得分:2)
答案如下。
简而言之,您必须覆盖get_queryset方法。
http://www.django-rest-framework.org/api-guide/filtering/#filtering-against-query-parameters
答案 1 :(得分:1)
试试这个:
filter(clients__hostname=clients)
查看https://docs.djangoproject.com/en/1.5/topics/db/queries/#spanning-multi-valued-relationships