Skip to content

Commit 0eb7100

Browse files
committed
1, some modifications;
1 parent 20987d8 commit 0eb7100

File tree

5 files changed

+51
-9
lines changed

5 files changed

+51
-9
lines changed

apps/material/adminx.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515

1616

1717
class MaterialCategoryAdmin(object):
18-
list_display = ['name', "desc", "category_type", 'category_level', "parent_category", "is_tab", "add_time"]
19-
list_editable = ["is_tab", ]
18+
list_display = ['name', 'desc', 'category_type', 'category_level', 'parent_category', 'is_active', "is_tab", 'index', 'add_time']
19+
list_editable = ['is_active', 'is_tab', 'index']
2020
search_fields = ['name', ]
2121

2222

apps/material/apiview.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,31 +23,31 @@ class CategoryListViewset(viewsets.ReadOnlyModelViewSet):
2323
List:
2424
分类列表页
2525
"""
26-
queryset = MaterialCategory.objects.all()
26+
queryset = MaterialCategory.objects.filter(is_active=True)
2727
# 分页设置
2828
pagination_class = CustomePageNumberPagination
2929
serializer_class = CategorySerializer
3030
filter_backends = (DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter)
3131
filter_class = CategoryFilter
3232
search_fields = ('name', 'category_type', 'desc')
33-
ordering_fields = ('category_level', 'is_tab')
34-
ordering = ('id',)
33+
ordering_fields = ('category_level', 'index')
34+
ordering = ('index',)
3535

3636

3737
class SingleLevelCategoryListViewset(viewsets.ReadOnlyModelViewSet):
3838
"""
3939
List:
4040
单级分类列表页
4141
"""
42-
queryset = MaterialCategory.objects.all()
42+
queryset = MaterialCategory.objects.filter(is_active=True)
4343
# 分页设置
4444
pagination_class = CustomePageNumberPagination
4545
serializer_class = SingleLevelCategorySerializer
4646
filter_backends = (DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter)
4747
filter_class = CategoryFilter
4848
search_fields = ('name', 'category_type', 'desc')
49-
ordering_fields = ('category_level', 'is_tab')
50-
ordering = ('id',)
49+
ordering_fields = ('category_level', 'index')
50+
ordering = ('index',)
5151

5252

5353
class TagListViewset(viewsets.ReadOnlyModelViewSet):
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# -*- coding: utf-8 -*-
2+
# Generated by Django 1.10.8 on 2018-05-24 01:51
3+
from __future__ import unicode_literals
4+
5+
from django.db import migrations, models
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
('material', '0001_initial'),
12+
]
13+
14+
operations = [
15+
migrations.AddField(
16+
model_name='materialcategory',
17+
name='index',
18+
field=models.IntegerField(default=0, help_text='排序', verbose_name='排序'),
19+
),
20+
migrations.AddField(
21+
model_name='materialcategory',
22+
name='is_active',
23+
field=models.BooleanField(default=True, help_text='是否激活', verbose_name='是否激活'),
24+
),
25+
migrations.AlterField(
26+
model_name='materialcategory',
27+
name='is_tab',
28+
field=models.BooleanField(default=True, help_text='是否导航', verbose_name='是否导航'),
29+
),
30+
]

apps/material/models.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ class MaterialCategory(models.Model):
3737
category_level = models.CharField(max_length=20, choices=CATEGORY_LEVEL, verbose_name="类目级别", help_text="类目级别")
3838
parent_category = models.ForeignKey("self", null=True, blank=True, verbose_name="父类目级别", help_text="父目录",
3939
related_name="sub_category")
40-
is_tab = models.BooleanField(default=False, verbose_name="是否导航", help_text="是否导航")
40+
is_active = models.BooleanField(default=True, verbose_name="是否激活", help_text="是否激活")
41+
is_tab = models.BooleanField(default=True, verbose_name="是否导航", help_text="是否导航")
42+
index = models.IntegerField(default=0, verbose_name="排序", help_text="排序")
4143
add_time = models.DateTimeField(auto_now_add=True, verbose_name="添加时间")
4244

4345
class Meta:

apps/material/serializers.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,18 @@
1414
from BlogBackendProject.settings import MEDIA_URL_PREFIX
1515

1616

17+
# 子级分类排序过滤,只取显示在tab上的,且按index排序
18+
class OrderCategoryListSerializer(serializers.ListSerializer):
19+
20+
def to_representation(self, data):
21+
data = data.filter(is_active=True).order_by('index')
22+
return super(OrderCategoryListSerializer, self).to_representation(data)
23+
24+
1725
class CategorySerializer3(serializers.ModelSerializer):
1826

1927
class Meta:
28+
list_serializer_class = OrderCategoryListSerializer
2029
model = MaterialCategory
2130
fields = "__all__"
2231

@@ -25,6 +34,7 @@ class CategorySerializer2(serializers.ModelSerializer):
2534
sub_category = CategorySerializer3(many=True)
2635

2736
class Meta:
37+
list_serializer_class = OrderCategoryListSerializer
2838
model = MaterialCategory
2939
fields = "__all__"
3040

0 commit comments

Comments
 (0)