【问题标题】:How to query by unique attribute with Django-Rest-Framework (Many To Many)如何使用 Django-Rest-Framework(多对多)通过唯一属性进行查询
【发布时间】:2013-08-01 12:56:09
【问题描述】:

我有一个简单的多对多关系概述如下:

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”的过滤器?

【问题讨论】:

标签: python django rest django-rest-framework


【解决方案1】:

答案如下。

简而言之,您必须覆盖 get_queryset 方法。

http://www.django-rest-framework.org/api-guide/filtering/#filtering-against-query-parameters

【讨论】:

    【解决方案2】:

    【讨论】:

    • 对,我知道如何从 ORM 中做到这一点,但不知道如何将该查询移植到其余框架。
    • @ChrisKing,将 get_queryset() 方法添加到您的类而不是 self.queryset 定义/
    猜你喜欢
    • 2018-07-28
    • 2014-07-30
    • 2014-05-07
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 2021-09-01
    • 2020-10-07
    • 1970-01-01
    相关资源
    最近更新 更多