增加category big
This commit is contained in:
parent
870587e878
commit
6d3e304359
|
@ -0,0 +1,25 @@
|
||||||
|
# Generated by Django 3.0.5 on 2022-11-17 01:41
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('system', '0022_delete_historicaldict'),
|
||||||
|
('vod', '0008_auto_20221116_1453'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='video',
|
||||||
|
name='category_big',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='video_catebig', to='system.Dict', verbose_name='视频大类'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='video',
|
||||||
|
name='category',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='video_cate', to='system.Dict', verbose_name='视频分类'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -7,7 +7,8 @@ from apps.system.models import User, CommonAModel, Dict
|
||||||
class Video(CommonAModel):
|
class Video(CommonAModel):
|
||||||
|
|
||||||
name = models.CharField(verbose_name='视频名称', max_length=100)
|
name = models.CharField(verbose_name='视频名称', max_length=100)
|
||||||
category = models.ForeignKey(Dict, verbose_name='视频分类', on_delete=models.DO_NOTHING)
|
category_big = models.ForeignKey(Dict, verbose_name='视频大类', on_delete=models.SET_NULL, null=True, blank=True, related_name='video_catebig')
|
||||||
|
category = models.ForeignKey(Dict, verbose_name='视频分类', on_delete=models.SET_NULL, null=True, blank=True, related_name='video_cate')
|
||||||
description = models.TextField(verbose_name='视频描述', default='')
|
description = models.TextField(verbose_name='视频描述', default='')
|
||||||
fileid = models.CharField(verbose_name='云点播视频id', unique=True, max_length=200)
|
fileid = models.CharField(verbose_name='云点播视频id', unique=True, max_length=200)
|
||||||
mediaurl = models.CharField(verbose_name='视频地址', max_length=200)
|
mediaurl = models.CharField(verbose_name='视频地址', max_length=200)
|
||||||
|
|
|
@ -10,6 +10,11 @@ class VideoSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
video = super().create(validated_data)
|
video = super().create(validated_data)
|
||||||
|
cate = video.category
|
||||||
|
video.category_big = cate
|
||||||
|
if cate.pid:
|
||||||
|
video.category_big = cate.pid
|
||||||
|
video.save()
|
||||||
View1.objects.get_or_create(video=video, defaults={'video': video})
|
View1.objects.get_or_create(video=video, defaults={'video': video})
|
||||||
return video
|
return video
|
||||||
|
|
||||||
|
@ -17,6 +22,15 @@ class VideoUpdateSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Video
|
model = Video
|
||||||
fields = ['name', 'category', 'description', 'sort_str']
|
fields = ['name', 'category', 'description', 'sort_str']
|
||||||
|
|
||||||
|
def update(self, instance, validated_data):
|
||||||
|
video = super().update(instance, validated_data)
|
||||||
|
cate = video.category
|
||||||
|
video.category_big = cate
|
||||||
|
if cate.pid:
|
||||||
|
video.category_big = cate.pid
|
||||||
|
video.save()
|
||||||
|
return video
|
||||||
|
|
||||||
class VideoListDetailSerializer(serializers.ModelSerializer):
|
class VideoListDetailSerializer(serializers.ModelSerializer):
|
||||||
views_n = serializers.IntegerField(source='view1_video.views', read_only=True, label="总观看次数")
|
views_n = serializers.IntegerField(source='view1_video.views', read_only=True, label="总观看次数")
|
||||||
|
|
|
@ -107,6 +107,15 @@ class VideoViewSet(PageOrNot, CreateUpdateModelAMixin, ModelViewSet):
|
||||||
cal_view1(vi)
|
cal_view1(vi)
|
||||||
return Response({"vi": vi.id})
|
return Response({"vi": vi.id})
|
||||||
|
|
||||||
|
@action(methods=['get'], detail=False, perms_map={'get':'*'})
|
||||||
|
def correct_cate(self, request, *args, **kwargs):
|
||||||
|
for video in Video.objects.get_queryset(all=True).all():
|
||||||
|
cate = video.category
|
||||||
|
video.category_big = cate
|
||||||
|
if cate.pid:
|
||||||
|
video.category_big = cate.pid
|
||||||
|
video.save()
|
||||||
|
return Response()
|
||||||
|
|
||||||
def cal_view1(vi: ViewItem):
|
def cal_view1(vi: ViewItem):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -33,14 +33,15 @@ class SoftDeletableManagerMixin(object):
|
||||||
'''
|
'''
|
||||||
_queryset_class = SoftDeletableQuerySet
|
_queryset_class = SoftDeletableQuerySet
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self, all=False):
|
||||||
'''
|
'''
|
||||||
Return queryset limited to not deleted entries.
|
Return queryset limited to not deleted entries.
|
||||||
'''
|
'''
|
||||||
kwargs = {'model': self.model, 'using': self._db}
|
kwargs = {'model': self.model, 'using': self._db}
|
||||||
if hasattr(self, '_hints'):
|
if hasattr(self, '_hints'):
|
||||||
kwargs['hints'] = self._hints
|
kwargs['hints'] = self._hints
|
||||||
|
if all:
|
||||||
|
return self._queryset_class(**kwargs)
|
||||||
return self._queryset_class(**kwargs).filter(is_deleted=False)
|
return self._queryset_class(**kwargs).filter(is_deleted=False)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue