本文共 1084 字,大约阅读时间需要 3 分钟。
想要呈现热卖商品 只需要将商品model中的is_hot为True的字段过滤出来就可以了
class Goods(models.Model): ... is_hot = models.BooleanField(default=False, verbose_name=u'是否热销') ...
那我们就去goods下面的filters.py中添加过滤字段
import django_filtersfrom django.db.models import Qfrom .models import Goodsclass GoodsFilter(django_filters.rest_framework.FilterSet): """ 商品的过滤类 """ pricemin = django_filters.NumberFilter(field_name='shop_price', lookup_expr='gte') pricemax = django_filters.NumberFilter(field_name='shop_price', lookup_expr='lte') top_category = django_filters.NumberFilter(method='top_category_filter') name = django_filters.CharFilter(field_name='name') def top_category_filter(self, queryset, name, value): return queryset.filter(Q(category_id = value) | Q(category__parent_category_id = value) | Q(category__parent_category__parent_category_id = value)) class Meta: model = Goods# --------------------------------------------->这里 只要添加is_hot字段就可以了 完美 搞定 拿钱 fields = ['pricemin','pricemax', 'name', 'is_hot']
示例:
URL请求:
前端vue中也是请求goods的api 只是添加了is_hot:true的字段
完结
转载地址:http://oiepi.baihongyu.com/