首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在django rest_framework的search_fields中重命名字段?

在Django Rest Framework中,可以通过在search_fields中指定字段来实现搜索功能。如果需要重命名字段,可以使用数据库中的字段名作为搜索字段,然后在序列化器中使用source参数来指定返回给前端的字段名。

以下是一个示例:

代码语言:txt
复制
# models.py
from django.db import models

class MyModel(models.Model):
    original_field_name = models.CharField(max_length=100)

# serializers.py
from rest_framework import serializers
from .models import MyModel

class MyModelSerializer(serializers.ModelSerializer):
    renamed_field_name = serializers.CharField(source='original_field_name')

    class Meta:
        model = MyModel
        fields = ('renamed_field_name',)

# views.py
from rest_framework import viewsets
from .models import MyModel
from .serializers import MyModelSerializer

class MyModelViewSet(viewsets.ModelViewSet):
    queryset = MyModel.objects.all()
    serializer_class = MyModelSerializer
    search_fields = ('original_field_name',)  # 使用数据库字段名进行搜索

在上述示例中,MyModel模型中有一个名为original_field_name的字段,我们将其重命名为renamed_field_name并在序列化器中使用。在视图集中,我们将search_fields设置为('original_field_name',),这样就可以使用原始字段名进行搜索。

请注意,这只是一个示例,你需要根据自己的实际情况进行调整。关于Django Rest Framework的更多信息和使用方法,你可以参考腾讯云的Django Rest Framework产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django REST Framework-如何使用过滤器

Django REST Framework (DRF) 是一个开源 Web 框架,它建立在 Django 上,可以帮助你轻松地构建 RESTful API。...例如,你可以在视图类定义添加如下代码:from rest_framework import filtersclass MyView(viewsets.ModelViewSet): queryset...= ['name', 'description']在这个例子,我们添加了 SearchFilter 过滤器,并且指定了 search_fields 属性来指定搜索字段。...另外一个例子,如果你想要对日期字段进行范围过滤,你可以在视图类定义添加如下代码:from rest_framework import filtersclass MyView(viewsets.ModelViewSet...我们还展示了如何在视图集合中使用这些过滤器,并提供了一些例子来帮助你更好地理解它们用法。

1.9K40

【愚公系列】2022年04月 Python教学课程 74-DRF框架之过滤

url 查询参数确定初始查询集。...'django_filters', ... ] REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend...该属性应是模型上文本类型字段名称列表,例如 from rest_framework import filters class UserListView(generics.ListAPIView):...username', 'email', 'profile__profession'] 4.3 嵌套查找 对于 JSONField 和 HStoreField 字段,您可以使用相同双下划线表示法根据数据结构嵌套值进行查找...如果使用多个搜索词,则仅当所有提供词都匹配时,才会在列表返回对象。 搜索行为可能会因在 前面加上各种字符而受到限制。search_fields “^”以搜索开头。 “=”完全匹配。

2.5K30

Django+Vue开发生鲜电商平台之5.使用DRF实现商品列表页和过滤

但是从代码可以看到: 通过在新建列表、其元素为单个商品信息组成字典,一个一个地添加,显得很麻烦,可进行改进; 有些字段不能直接用json.dumps()方法序列化,datetime,会报错,商品列表视图修改为如下时...Django中有Form,也有ModelForm,DRF也有ModelSerializer,相比于Serializer,它省去了模型所有字段添加和处理数据方法实现,serializers.py简化如下...过滤使用 通过django-filtersDjangoFilterBackend类实现字段过滤。...显然,实现了搜索,在给定字段搜索,匹配到关键字则展示到前台。...还可以通过在字段前面加上各种字符来限制搜索行为search_fields: '^'开始搜索 '='完全匹配 '@'全文搜索(当前仅支持DjangoMySQL后端) '$'正则表达式搜索 修改如下:

5.3K20

django rest framework使用django-filter用法

过滤器添加进来 和 rest_frameworkfilters添加进来一起用, 也可以单个用, 看你需求 filter_backends = [DjangoFilterBackend, filters.SearchFilter...] # 只需要简单基于等同过滤,则可以filter_fields在视图或视图集上设置属性,列出要过滤字段集。...# 等同就是根据你过滤字段数据必须跟数据库里那个字段数据相同 # filter_fields = ['name', 'shop_price'] # 指定过滤器类 filter_class...= GoodsFilter search_fields = ['name', 'goods_brief', "goods_desc"] 过滤器类–根据自己需求定义 import django_filters...以上这篇django rest framework使用django-filter用法就是小编分享给大家全部内容了,希望能给大家一个参考。

1.7K10

Vue+Django2.0 REST framework 打造前后端分离生鲜电商项目(五)商品列表页

2.实现商品列表页 1.配置 rest_framework 1.在urls.py 1 from django.urls import path,include 2 import xadmin 3...', 20 ] 2.drf写views 在apps/goods下新建serializer.py文件(drfserializer.py等同于djangoforms.py) 1 from rest_framework...name字段(昵称),而drf在找是AbstractUserusername字段(用户名),没找到所以报错 解决方法:将UserProfile表__str__方法改成返回username: 1...def __str__(self): 2 return self.username 三、drf实现商品列表页功能 1.ModelSerializer(相当于djangomodelform...modelform做到了同样事儿,但modelserializer可以做到 序列化嵌套 对apps/goods/serializer.py改写: 1 from rest_framework import

4.8K61

DjangoAutoField字段使用

Django是一个机智框架】 默认情况下Djang会为ORM定义每一张表加上一个自增ID列,并且用这个列来做主键;出于一个MySQL-DBA工作经历我觉得 Djanog还真是机智;这样么说主要是因为我遇到过许多主从延时问题...补充知识:Djangomodels下常用Field以及字段参数 一、常见FieldType数据库字段类型 1、AutoField:自增Field域,自动增加一个数据库字段类型,例如id字段就可以使用该数据类型...1、null:用于表示某个字段可以为空 2、unique:如果设置为unique=True则该字段在此表必须是唯一 3、db_index:如果db_index=True则代表这为此字段设置索引 4...类,而Meta类封装了一些数据库信息,主要字段如下: 1、db_table:ORM在数据库表名默认为app_类名,可以通过db_table可以重写表名 2、index_together:联合索引,...https://docs.djangoproject.com/en/dev/ref/models/fields/ 以上这篇DjangoAutoField字段使用就是小编分享给大家全部内容了,希望能给大家一个参考

6.4K20

Django REST framework+Vue 打造生鲜超市(五) 六、商品类别数据展示

class CategorySerializer2(serializers.ModelSerializer): ''' 二级分类 ''' #在parent_category字段定义.../ottoyiu/django-cors-headers  (2)添加到INSTALL_APPS INSTALLED_APPS = ( ... (3)添加中间件 下面添加中间件说明: CorsMiddleware...#两个参数,name是要过滤字段,lookup是执行行为,‘小与等于本店价格’ pricemin = django_filters.NumberFilter(name="shop_price...): ''' 商品过滤类 ''' #两个参数,name是要过滤字段,lookup是执行行为,‘小与等于本店价格’ pricemin = django_filters.NumberFilter...class CategorySerializer2(serializers.ModelSerializer): ''' 二级分类 ''' #在parent_category字段定义

2.4K81

DRF 过滤排序分页异常处理

filter_backends = [SearchFilter,] # 过滤单个字段 search_fields = ['title',] 注意:链接过滤字段必须是search # 过滤多个字段...search=H 总结: 内置过滤类使用,模糊查询会将包含过滤字段数据都过滤出来,前提是在search_fields列表内指定字段; 内置过滤特点是模糊查询 过滤字段参数为search 第三方过滤...'django_filters', # 需要注册应用, ] 在视图中添加filter_fields属性,指定可以过滤字段 from django_filters.rest_framework import...title=Java&author=HammerZe # 多个字段过滤 总结: 第三方过滤类在filter_backends字段写,filter_fields字段指定过滤字段 第三方过滤类不支持模糊查询...步骤 自定义函数 在配置文件配置函数 注意 如果没有配置自己处理异常规则,会执行默认,如下: from rest_framework import settings from rest_framework.views

1K40

django 模型计算字段实例

verbose_name='姓') given_name = models.CharField(max_length=20, verbose_name='名') def name(self): # 计算字段要显示在修改页面只能定义在只读字段...name.short_description = '全名' # 用于显示时名字 , 没有这个,字段标题将显示'name' readonly_fields = ('name',) admin.site.register...(Person, PersonAdmin) 补充知识:django何在 search_fields 包含外键字段search_fields中加入一个外键名字是不能查询,要写成(外键名__外键字段名...)形式. search_fields = ('attributename','goodsclass__cn') # goodsclass__cn 就可以搜索外键名字中有搜索词条目了, # 比如搜索手机分辨率...,而不是电脑分辨率,就可以搜索'手机 分辨率' 以上这篇django 模型计算字段实例就是小编分享给大家全部内容了,希望能给大家一个参考。

4.4K20

(项目)生鲜超市(七)

): 2 """商品过滤""" 3 4 # name是要过滤字段,lookup是执行行为 5 pricemin = django_filters.NumberFilter...3、用户收藏接口   在user_operation下新建serializers.py文件,序列化用户收藏model字段: 1 from rest_framework import serializers...id,因为取消收藏时候必须知道商品id是多少 23 fields = ('user', 'goods', 'id')   然后在views.py编写用户收藏接口,收藏需要继承CreateModelMixin...4、drf权限验证   在utils下新建permissions.py,这个官网有实例,直接复制过来即可,把其中owner改为user即可: 1 from rest_framework import...删除settingsrest_framework_jwt.authentication.JSONWebTokenAuthentication 5、Vue和用户收藏接口联调   修改Vue前端代码

66230

Django Model字段(field)各种选项说明

字段与选项 CharField() 字符字段 max_length = xxx or None # 必选项 blank = True 和 default = ” # 如果不是必填项,可以设置 unique...default = date.today # 需要导入包 from datetime import date DateTimeField:default = timezone.now # 需要导入包 from django.utils...可以设置 through = ‘intermediary model # 如果需要建立中间模型来搜集更多信息,可以设置 related_name = xxx # 便于反向查询 补充知识:django 使用...annotate定义字段后排序翻页重复问题 objs = A.objects.annotate(number=Sum(‘b__number’)).order_by(‘-number’) 此时对objs...(‘-number’, ‘id’) 以上这篇Django Model字段(field)各种选项说明就是小编分享给大家全部内容了,希望能给大家一个参考。

1.7K30

Django+Vue开发生鲜电商平台之8.商品详情页功能实现

显然,在商品信息增加了images字段,用于保存轮播图片。...二、热卖商品实现 可以看到,在商品详情页右侧有热卖商品,这要用到商品is_hot字段,在过滤器对is_hot字段进行过滤即可,apps/goods/filters.py如下: class GoodsFilter...再在apps/user_operation/views.py实现视图: from django.shortcuts import render from rest_framework import viewsets...3.前端Vue实现收藏功能 GenericAPIView有一个属性为lookup_field,用于执行单个模型实例对象查找模型字段,即查询单一数据库对象时使用条件字段,默认为pk,即主键。...,而不再是根据UserFav主键id进行查找,就到了自己设置查询使用字段目的,可用性更高。

1.1K20
领券