小编use*_*034的帖子

django休息框架过滤器

我正在使用由Django rest框架制作的API,我正在尝试对JSON进行过滤这是我的 serializers.py文件

from rest_framework import serializers
from .models import Establecimiento,Categoria,Ciudad,Zona
import django_filters

class EstablecimientoSerializer(serializers.ModelSerializer):
    class Meta:
        model = Establecimiento
        depth = 1

        fields =  ('nombre',
                   'ciudad',
                   'categoria',
                   'direccion',
                   'telefono',
                   'precioMinimo',
                   'precioMaximo',)
Run Code Online (Sandbox Code Playgroud)

这是我的views.py档案

from rest_framework import viewsets
from .serializers import EstablecimientoSerializer, CategoriaSerializer
from models import *
from rest_framework import filters
from rest_framework import generics

class EstablecimientoViewSet(viewsets.ModelViewSet):
    queryset = Establecimiento.objects.all()
    serializer_class = EstablecimientoSerializer
    filter_fields = ('categoria',)
Run Code Online (Sandbox Code Playgroud)

然后在EstablecimientoViewSet课堂上,我用一个filter_fields = ('categoria',) 用类别字段过滤url的API

如果我将过滤器添加到查询参数中,结果集不会更改,它会显示未过滤的所有数据.

...establecimiento?establecimiento=bar
Run Code Online (Sandbox Code Playgroud)

如何对此模型进行过滤?

python django django-filter django-rest-framework

23
推荐指数
2
解决办法
3万
查看次数

django rest framework,order_by来自serializers.py文件的JSON

我正在使用django rest框架,我想通过我的json订购我如何使用serializers.py文件中的django rest框架生成一个order_by我在serializers.py中有这个

class EstablecimientoSerializer(serializers.ModelSerializer):
    class Meta:
        model = Establecimiento
        depth = 1
        fields =   ('nombre','ciudad',)
    order_by = (
        ('nombre',)
    )
Run Code Online (Sandbox Code Playgroud)

我有这个order_by,但这对JSON没有任何作用

在serializers.py的JSON中执行此顺序的正确方法是什么?

我有views.py

class EstablecimientoViewSet(viewsets.ModelViewSet):
    queryset = Establecimiento.objects.order_by('nombre')
    serializer_class = EstablecimientoSerializer
    filter_backends = (filters.DjangoFilterBackend,)
    filter_fields = ('categoria','categoria__titulo',)
Run Code Online (Sandbox Code Playgroud)

然后order_by不起作用,因为我有这个过滤器,我怎么做才能使过滤器与order_by一起运行良好?

python django json django-rest-framework

12
推荐指数
2
解决办法
7814
查看次数

Django ORM 内连接

我无法使用 Django ORM 执行此查询。如何进行内部联接,如何执行此查询并仅返回我想要的列?

SELECT     establecimiento.nombre, categoria.titulo
FROM         establecimiento INNER JOIN
                      categoria ON establecimiento.categoria = categoria.id
Run Code Online (Sandbox Code Playgroud)

python django orm django-models

2
推荐指数
1
解决办法
2万
查看次数