From f3e8e9e35f5242bfa52c6a4183846cb74e772952 Mon Sep 17 00:00:00 2001 From: guoshijiang Date: Thu, 14 Mar 2024 20:27:02 +0800 Subject: [PATCH] add new field for api --- ...on_projectinteraction_link_url_and_more.py | 43 +++++++++++++++++++ airdrop/models.py | 30 ++++++++++++- 2 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 airdrop/migrations/0002_projectinteraction_icon_projectinteraction_link_url_and_more.py diff --git a/airdrop/migrations/0002_projectinteraction_icon_projectinteraction_link_url_and_more.py b/airdrop/migrations/0002_projectinteraction_icon_projectinteraction_link_url_and_more.py new file mode 100644 index 0000000..bac7c54 --- /dev/null +++ b/airdrop/migrations/0002_projectinteraction_icon_projectinteraction_link_url_and_more.py @@ -0,0 +1,43 @@ +# Generated by Django 4.1.1 on 2024-03-14 12:24 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('airdrop', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='projectinteraction', + name='icon', + field=models.ImageField(blank=True, null=True, upload_to='projects/%Y/%m/%d/', verbose_name='交互Icon'), + ), + migrations.AddField( + model_name='projectinteraction', + name='link_url', + field=models.CharField(blank=True, max_length=200, verbose_name='交互链接'), + ), + migrations.AddField( + model_name='projectinteraction', + name='step', + field=models.CharField(blank=True, max_length=100, unique=True, verbose_name='交互步骤'), + ), + migrations.AlterField( + model_name='projectinteraction', + name='name', + field=models.CharField(blank=True, max_length=100, unique=True, verbose_name='交互名称'), + ), + migrations.AlterField( + model_name='questions', + name='answer', + field=models.CharField(max_length=500, unique=True, verbose_name='问题答案'), + ), + migrations.AlterField( + model_name='questions', + name='question', + field=models.CharField(max_length=200, unique=True, verbose_name='问题名称'), + ), + ] diff --git a/airdrop/models.py b/airdrop/models.py index 2dac7ce..c22d6d8 100644 --- a/airdrop/models.py +++ b/airdrop/models.py @@ -81,6 +81,9 @@ class Meta: def __str__(self): return self.name + def get_invite_member_numbers(self): + return AirdropUser.objects.filter(uuid=self.uuid).count() + def as_dict(self): return { 'id': self.id, @@ -92,6 +95,7 @@ def as_dict(self): 'x_twitter': self.x_twitter, 'discord': self.discord, 'telegram': self.telegram, + 'invite_total': self.get_invite_member_numbers(), 'info': self.info } @@ -138,9 +142,22 @@ def as_dict(self): class ProjectInterAction(BaseModel): + step = models.CharField( + max_length=100, + unique=True, + blank=True, + verbose_name='交互步骤' + ) + icon = models.ImageField( + upload_to='projects/%Y/%m/%d/', + blank=True, + null=True, + verbose_name='交互Icon' + ) name = models.CharField( max_length=100, unique=True, + blank=True, verbose_name='交互名称' ) describe = models.CharField( @@ -148,6 +165,12 @@ class ProjectInterAction(BaseModel): unique=True, verbose_name='交互描述' ) + link_url = models.CharField( + max_length=200, + unique=False, + blank=True, + verbose_name='交互链接' + ) language = models.CharField( max_length=100, choices=LanguageChoice, @@ -175,9 +198,12 @@ def __str__(self): def as_dict(self): return { 'id': self.id, + 'step': self.step, 'name': self.name, + 'icon': str(self.icon), 'describe': self.describe, 'type': self.type, + 'link_url': self.link_url, 'language': self.language, 'points': self.max_points, } @@ -187,12 +213,12 @@ class Questions(BaseModel): question = models.CharField( max_length=200, unique=True, - verbose_name='交互名称' + verbose_name='问题名称' ) answer = models.CharField( max_length=500, unique=True, - verbose_name='交互名称' + verbose_name='问题答案' ) language = models.CharField( max_length=100,