如何使用django-filter搜索Django restframework中的所有内容

时间:2019-07-18 16:26:34

标签: django-models django-rest-framework django-filter

我要问的是,有没有一种方法可以使用Django restframework从所有模型,所有字段中进行搜索 例如两个模型

class Shop(models.Model): 
     name=models.CharField()
     description = models.Textarea()
     location = models.IntegerField()

class Bag(models.Model):
       shop = models.ForeigKey(Shop, related_name='bag',on_delete=models.CASCADE) 
       name=models.CharField()
       description = models.Textarea()
       price = models.IntegerField()

我想这样一种方式:如果用户键入与两个模型中的任何字段匹配的任何内容,他就会得到结果, 如何写出我的观点来支持这一点?

1 个答案:

答案 0 :(得分:0)

据我所知,没有办法做到这一点。取而代之的是,也许重新设计模型,以便将公共元素放在一个模型中,将其他元素放在链接的模型中。例如

class Entity(models.Model):
    name=models.CharField()
    description = models.Textarea()

class Shop(models.Model): 
    entity = models.ForeignKey(Entity)
    location = models.IntegerField()

class Bag(models.Model):
    entity = models.ForeignKey(Entity)
    shop = models.ForeignKey(Shop) 
    price = models.IntegerField()

然后,您可以搜索Entityname上的所有description对象。