new
This commit is contained in:
18
backend/community/migrations/0005_topic_category.py
Normal file
18
backend/community/migrations/0005_topic_category.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 6.0.1 on 2026-02-12 06:19
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('community', '0004_activity_banner_url_alter_activity_banner'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='topic',
|
||||
name='category',
|
||||
field=models.CharField(choices=[('discussion', '技术讨论'), ('help', '求助问答'), ('share', '经验分享'), ('notice', '官方公告')], default='discussion', max_length=20, verbose_name='分类'),
|
||||
),
|
||||
]
|
||||
@@ -71,6 +71,15 @@ class Topic(models.Model):
|
||||
论坛帖子/主题
|
||||
"""
|
||||
title = models.CharField(max_length=200, verbose_name="标题")
|
||||
|
||||
CATEGORY_CHOICES = (
|
||||
('discussion', '技术讨论'),
|
||||
('help', '求助问答'),
|
||||
('share', '经验分享'),
|
||||
('notice', '官方公告'),
|
||||
)
|
||||
category = models.CharField(max_length=20, choices=CATEGORY_CHOICES, default='discussion', verbose_name="分类")
|
||||
|
||||
content = models.TextField(verbose_name="内容", help_text="支持Markdown格式,支持插入图片")
|
||||
author = models.ForeignKey(WeChatUser, on_delete=models.CASCADE, related_name='topics', verbose_name="作者")
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 6.0.1 on 2026-02-12 06:19
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('shop', '0026_wechatuser_phone_number'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='wechatuser',
|
||||
name='is_star',
|
||||
field=models.BooleanField(default=False, verbose_name='是否明星技术用户'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='wechatuser',
|
||||
name='title',
|
||||
field=models.CharField(blank=True, default='技术专家', max_length=50, verbose_name='专家头衔'),
|
||||
),
|
||||
]
|
||||
@@ -20,6 +20,11 @@ class WeChatUser(models.Model):
|
||||
country = models.CharField(max_length=64, verbose_name="国家", blank=True)
|
||||
province = models.CharField(max_length=64, verbose_name="省份", blank=True)
|
||||
city = models.CharField(max_length=64, verbose_name="城市", blank=True)
|
||||
|
||||
# 明星技术用户/专家标识
|
||||
is_star = models.BooleanField(default=False, verbose_name="是否明星技术用户")
|
||||
title = models.CharField(max_length=50, default="技术专家", verbose_name="专家头衔", blank=True)
|
||||
|
||||
created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
|
||||
updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间")
|
||||
|
||||
|
||||
@@ -22,8 +22,8 @@ class CommissionLogSerializer(serializers.ModelSerializer):
|
||||
class WeChatUserSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = WeChatUser
|
||||
fields = ['id', 'nickname', 'avatar_url', 'gender', 'country', 'province', 'city', 'phone_number']
|
||||
read_only_fields = ['id', 'phone_number']
|
||||
fields = ['id', 'nickname', 'avatar_url', 'gender', 'country', 'province', 'city', 'phone_number', 'is_star', 'title']
|
||||
read_only_fields = ['id', 'phone_number', 'is_star', 'title']
|
||||
|
||||
class DistributorSerializer(serializers.ModelSerializer):
|
||||
user_info = WeChatUserSerializer(source='user', read_only=True)
|
||||
|
||||
Reference in New Issue
Block a user