gpt4 book ai didi

Django-filter 按相关字段过滤

转载 作者:行者123 更新时间:2023-12-02 11:51:53 25 4
gpt4 key购买 nike

我有两张 table 。

class Writer(models.Model)
name = model.CharField()
...

class Article(models.Model)
name = model.CharField()
writer = model.ForeignKey('Writer', related_name="relationship")
...

我想构建一些获取作者列表的 API 端点,但这应该可以通过文章 id 进行过滤。我正在使用 django-filter。所以:

class WriterViewSet(viewsets.ReadOnlyModelViewSet):
filter_backend = [filters.djangoFilterBackend],
filter_class = WriterFilter


class WriteFilter(django_filters.rest_framework.FilterSet):
....

所以我关心的是,如何定义 WriteFilter 来按文章过滤 Writer?

最佳答案

class WriteFilter(django_filters.rest_framework.FilterSet):
article = django_filters.CharFilter(name='relationship__name', lookup_expr='contains')

class Meta:
model = WriterFilter
fields = ['article']


你的网址将是这样的,
/api/wtiter/list/?article=somearticlename

<小时/>

更新1

django-filter 2.0 起,name 参数更改为 field_name.

因此过滤器类将是,

class WriteFilter(django_filters.rest_framework.FilterSet):
article = django_filters.CharFilter(<b>field_name</b>='relationship__name', lookup_expr='contains')

class Meta:
model = WriterFilter
fields = ['article']

关于Django-filter 按相关字段过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51468071/

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