From 66d40e7c9fc5c028b65a9bf690787ed48be1fcd8 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Sun, 23 Jun 2024 12:04:19 +0000 Subject: [PATCH] add top for announcement --- ...r_announcement_options_announcement_top.py | 22 +++++++++++++++++++ announcement/models.py | 3 ++- announcement/serializers.py | 2 ++ announcement/views/admin.py | 6 +---- 4 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 announcement/migrations/0005_alter_announcement_options_announcement_top.py diff --git a/announcement/migrations/0005_alter_announcement_options_announcement_top.py b/announcement/migrations/0005_alter_announcement_options_announcement_top.py new file mode 100644 index 0000000..4fd956a --- /dev/null +++ b/announcement/migrations/0005_alter_announcement_options_announcement_top.py @@ -0,0 +1,22 @@ +# Generated by Django 5.0.6 on 2024-06-23 11:57 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("announcement", "0004_announcement_tag"), + ] + + operations = [ + migrations.AlterModelOptions( + name="announcement", + options={"ordering": ("-top", "-create_time")}, + ), + migrations.AddField( + model_name="announcement", + name="top", + field=models.BooleanField(default=False), + ), + ] diff --git a/announcement/models.py b/announcement/models.py index 2d768e8..68b9ede 100644 --- a/announcement/models.py +++ b/announcement/models.py @@ -13,7 +13,8 @@ class Announcement(models.Model): created_by = models.ForeignKey(User, on_delete=models.CASCADE) last_update_time = models.DateTimeField(auto_now=True) visible = models.BooleanField(default=True) + top = models.BooleanField(default=False) class Meta: db_table = "announcement" - ordering = ("-create_time",) + ordering = ("-top", "-create_time",) diff --git a/announcement/serializers.py b/announcement/serializers.py index 65f6305..cc7b0fe 100644 --- a/announcement/serializers.py +++ b/announcement/serializers.py @@ -9,6 +9,7 @@ class CreateAnnouncementSerializer(serializers.Serializer): tag = serializers.CharField() content = serializers.CharField(max_length=1024 * 1024 * 8) visible = serializers.BooleanField() + top = serializers.BooleanField() class AnnouncementSerializer(serializers.ModelSerializer): @@ -33,3 +34,4 @@ class EditAnnouncementSerializer(serializers.Serializer): tag = serializers.CharField() content = serializers.CharField(max_length=1024 * 1024 * 8) visible = serializers.BooleanField() + top = serializers.BooleanField() diff --git a/announcement/views/admin.py b/announcement/views/admin.py index 1bb6ad3..0fdaa3d 100644 --- a/announcement/views/admin.py +++ b/announcement/views/admin.py @@ -14,11 +14,7 @@ class AnnouncementAdminAPI(APIView): publish announcement """ data = request.data - announcement = Announcement.objects.create(title=data["title"], - content=data["content"], - tag=data["tag"], - created_by=request.user, - visible=data["visible"]) + announcement = Announcement.objects.create(**data, created_by=request.user) return self.success(AnnouncementSerializer(announcement).data) @validate_serializer(EditAnnouncementSerializer)