feat(migrations): add Phase 4.0+4.1 verbose_name/help_text migrations
Generated by manage.py makemigrations after Phase 4.0 (model Meta verbose_name) and Phase 4.1 (field-level verbose_name/help_text) were committed across all 9 apps. Field-meta only (Alter field on Meta options); no schema changes.
This commit is contained in:
@@ -0,0 +1,528 @@
|
||||
# Generated by Django 4.2.16 on 2026-04-30 01:46
|
||||
|
||||
import django.contrib.postgres.fields
|
||||
import django.contrib.postgres.search
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('org', '0003_alter_orgunit_address_city_and_more'),
|
||||
('region', '0003_alter_businessarea_district_and_more'),
|
||||
('fonrey_complex', '0003_alter_building_options_alter_complex_options_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='building',
|
||||
name='built_year',
|
||||
field=models.SmallIntegerField(blank=True, null=True, verbose_name='竣工年份'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='building',
|
||||
name='complex',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='buildings', to='fonrey_complex.complex', verbose_name='所属楼盘'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='building',
|
||||
name='created_by',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_buildings', to='org.staff', verbose_name='创建人'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='building',
|
||||
name='has_elevator',
|
||||
field=models.BooleanField(blank=True, null=True, verbose_name='是否有电梯'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='building',
|
||||
name='is_active',
|
||||
field=models.BooleanField(default=True, help_text='FALSE=已停用(楼栋被删除或合并)', verbose_name='是否启用'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='building',
|
||||
name='is_standard',
|
||||
field=models.BooleanField(default=False, help_text='TRUE=已经运营核准', verbose_name='是否标准结构'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='building',
|
||||
name='land_use_years',
|
||||
field=models.CharField(blank=True, default='', max_length=30, verbose_name='土地使用年限'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='building',
|
||||
name='name',
|
||||
field=models.CharField(help_text='如「1号楼」「A栋2单元」', max_length=50, verbose_name='楼栋名称'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='building',
|
||||
name='property_usage_type',
|
||||
field=models.CharField(blank=True, choices=[('residential', '住宅'), ('villa', '别墅'), ('commercial_residential', '商住'), ('commercial', '商业'), ('office', '写字楼'), ('other', '其他')], default='', help_text='可与楼盘不同,如商住楼盘内有纯商铺楼栋', max_length=30, verbose_name='物业类型'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='building',
|
||||
name='school',
|
||||
field=models.ForeignKey(blank=True, help_text='楼栋级别的学区差异', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='buildings', to='region.school', verbose_name='对口学校'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='building',
|
||||
name='total_floors',
|
||||
field=models.SmallIntegerField(blank=True, null=True, verbose_name='总层数'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='address',
|
||||
field=models.CharField(blank=True, default='', help_text='不可在编辑页修改,需走纠错流程', max_length=500, verbose_name='详细地址'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='address_summary',
|
||||
field=models.CharField(blank=True, default='', help_text='如「海波路1000弄」,可编辑', max_length=100, verbose_name='概要地址'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='building_structure',
|
||||
field=models.CharField(blank=True, choices=[('unit_room', '单元-房号'), ('other', '其他')], default='', help_text='unit_room=单元-房号 / other=其他', max_length=30, verbose_name='楼栋结构'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='building_type',
|
||||
field=models.CharField(blank=True, choices=[('slab', '板楼'), ('tower', '塔楼'), ('slab_tower', '板塔结合')], default='', help_text='slab=板楼 / tower=塔楼 / slab_tower=板塔结合', max_length=20, verbose_name='建筑类型'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='built_year',
|
||||
field=models.SmallIntegerField(blank=True, help_text='可多选时存最早竣工年', null=True, verbose_name='竣工年份'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='built_years',
|
||||
field=django.contrib.postgres.fields.ArrayField(base_field=models.SmallIntegerField(), blank=True, default=list, help_text='楼盘分期竣工', size=None, verbose_name='竣工年份多值'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='business_areas',
|
||||
field=models.ManyToManyField(related_name='complexes', through='fonrey_complex.ComplexBusinessArea', to='region.businessarea', verbose_name='关联商圈'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='created_by',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_complexes', to='org.staff', verbose_name='创建人'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='developer',
|
||||
field=models.CharField(blank=True, default='', max_length=200, verbose_name='开发商'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='district',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='complexes', to='region.district', verbose_name='所属城区'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='electricity_type',
|
||||
field=models.CharField(blank=True, choices=[('civil', '民电'), ('commercial', '商电')], default='', help_text='civil=民电 / commercial=商电', max_length=10, verbose_name='电费类型'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='green_rate',
|
||||
field=models.DecimalField(blank=True, decimal_places=2, help_text='单位:%', max_digits=5, null=True, verbose_name='绿化率'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='has_central_heating',
|
||||
field=models.BooleanField(blank=True, null=True, verbose_name='是否统一供暖'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='has_gas',
|
||||
field=models.BooleanField(blank=True, null=True, verbose_name='是否有燃气'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='is_active',
|
||||
field=models.BooleanField(default=True, help_text='FALSE=已停用楼盘', verbose_name='是否启用'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='land_use_years',
|
||||
field=models.CharField(blank=True, default='', help_text='如「70年」', max_length=30, verbose_name='土地使用年限'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='latitude',
|
||||
field=models.DecimalField(blank=True, decimal_places=7, help_text='WGS84,完整度目标 ≥ 90%', max_digits=10, null=True, verbose_name='纬度'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='lock_building',
|
||||
field=models.BooleanField(default=False, help_text='锁定后不可增删楼栋', verbose_name='楼栋锁'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='lock_info',
|
||||
field=models.BooleanField(default=False, help_text='锁定后基本信息只读', verbose_name='信息锁'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='lock_room',
|
||||
field=models.BooleanField(default=False, verbose_name='房号锁'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='lock_standard_room',
|
||||
field=models.BooleanField(default=False, verbose_name='标准房号锁'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='longitude',
|
||||
field=models.DecimalField(blank=True, decimal_places=7, help_text='WGS84', max_digits=10, null=True, verbose_name='经度'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='metro_stations',
|
||||
field=models.ManyToManyField(related_name='complexes', through='fonrey_complex.ComplexMetroStation', to='region.metrostation', verbose_name='周边地铁站'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='name',
|
||||
field=models.CharField(help_text='标准楼盘名称,不可在编辑页直接修改(需走合并/申请流程)', max_length=200, verbose_name='楼盘名称'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='ownership_category',
|
||||
field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=30), blank=True, default=list, help_text='多选(运营维护枚举)', size=None, verbose_name='权属类别'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='parking_ratio',
|
||||
field=models.CharField(blank=True, default='', help_text='如「100:63」', max_length=20, verbose_name='车位配比'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='parking_total',
|
||||
field=models.IntegerField(blank=True, null=True, verbose_name='车位总数'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='parking_underground',
|
||||
field=models.IntegerField(blank=True, null=True, verbose_name='地下车位数'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='plot_area',
|
||||
field=models.DecimalField(blank=True, decimal_places=2, help_text='单位:m²', max_digits=12, null=True, verbose_name='小区占地面积'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='plot_ratio',
|
||||
field=models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True, verbose_name='容积率'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='property_company',
|
||||
field=models.CharField(blank=True, default='', max_length=200, verbose_name='物业公司'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='property_fee',
|
||||
field=models.DecimalField(blank=True, decimal_places=2, help_text='单位:元/m²/月', max_digits=8, null=True, verbose_name='物业费'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='property_phone',
|
||||
field=models.CharField(blank=True, default='', max_length=30, verbose_name='物业电话'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='property_usage_types',
|
||||
field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(choices=[('residential', '住宅'), ('villa', '别墅'), ('commercial_residential', '商住'), ('commercial', '商业'), ('office', '写字楼'), ('other', '其他')], max_length=30), blank=True, default=list, help_text='多选:residential / villa / commercial_residential / commercial / office / other', size=None, verbose_name='物业类型'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='remarks',
|
||||
field=models.TextField(blank=True, default='', verbose_name='备注'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='schools',
|
||||
field=models.ManyToManyField(related_name='complexes', through='fonrey_complex.ComplexSchool', to='region.school', verbose_name='对口学校'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='search_vector',
|
||||
field=django.contrib.postgres.search.SearchVectorField(blank=True, help_text='由触发器自动维护(name + alias + address)', null=True, verbose_name='全文检索向量'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='total_floor_area',
|
||||
field=models.DecimalField(blank=True, decimal_places=2, help_text='单位:m²', max_digits=12, null=True, verbose_name='小区总建筑面积'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='total_households',
|
||||
field=models.IntegerField(blank=True, null=True, verbose_name='总户数'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='total_units',
|
||||
field=models.IntegerField(blank=True, null=True, verbose_name='单元总数'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='updated_by',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='updated_complexes', to='org.staff', verbose_name='最后更新人'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='version',
|
||||
field=models.IntegerField(default=1, help_text='乐观锁;UPDATE 时 +1;应用层检测 0 行受影响时抛 ConflictError', verbose_name='版本号'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complex',
|
||||
name='water_type',
|
||||
field=models.CharField(blank=True, choices=[('civil', '民水'), ('commercial', '商水')], default='', help_text='civil=民水 / commercial=商水', max_length=10, verbose_name='水费类型'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexalias',
|
||||
name='alias',
|
||||
field=models.CharField(help_text='最多20字/条,多别名多行存储', max_length=200, verbose_name='别名'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexalias',
|
||||
name='complex',
|
||||
field=models.ForeignKey(help_text='别名随楼盘级联删除', on_delete=django.db.models.deletion.CASCADE, related_name='aliases', to='fonrey_complex.complex', verbose_name='所属楼盘'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexalias',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(auto_now_add=True, verbose_name='创建时间'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexalias',
|
||||
name='created_by',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_complex_aliases', to='org.staff', verbose_name='创建人'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexalias',
|
||||
name='is_system',
|
||||
field=models.BooleanField(default=False, help_text='TRUE=系统/标准别名(只读),FALSE=用户自定义', verbose_name='是否系统别名'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexattachment',
|
||||
name='complex',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='attachments', to='fonrey_complex.complex', verbose_name='所属楼盘'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexattachment',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(auto_now_add=True, verbose_name='创建时间'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexattachment',
|
||||
name='created_by',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_complex_attachments', to='org.staff', verbose_name='上传人'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexattachment',
|
||||
name='file_key',
|
||||
field=models.TextField(help_text='R2/S3 存储路径', verbose_name='文件存储路径'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexattachment',
|
||||
name='file_name',
|
||||
field=models.CharField(max_length=255, verbose_name='原始文件名'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexattachment',
|
||||
name='file_size',
|
||||
field=models.IntegerField(blank=True, help_text='单位:bytes', null=True, verbose_name='文件大小'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexattachment',
|
||||
name='file_type',
|
||||
field=models.CharField(blank=True, default='', help_text='MIME type', max_length=50, verbose_name='文件类型'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexattachment',
|
||||
name='sort_order',
|
||||
field=models.SmallIntegerField(default=0, verbose_name='排序顺序'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexbusinessarea',
|
||||
name='business_area',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='complex_links', to='region.businessarea', verbose_name='关联商圈'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexbusinessarea',
|
||||
name='complex',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='complex_business_areas', to='fonrey_complex.complex', verbose_name='所属楼盘'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexbusinessarea',
|
||||
name='is_primary',
|
||||
field=models.BooleanField(default=False, help_text='主商圈唯一,用于列表显示', verbose_name='是否主商圈'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexmetrostation',
|
||||
name='complex',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='complex_metro_stations', to='fonrey_complex.complex', verbose_name='所属楼盘'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexmetrostation',
|
||||
name='distance_meters',
|
||||
field=models.IntegerField(blank=True, help_text='单位:米', null=True, verbose_name='步行距离'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexmetrostation',
|
||||
name='station',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='complex_links', to='region.metrostation', verbose_name='关联地铁站'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexphoto',
|
||||
name='category',
|
||||
field=models.CharField(choices=[('complex', '楼盘图'), ('layout', '户型图'), ('vr', 'VR图'), ('other', '其他')], help_text='complex=楼盘图 / layout=户型图 / vr=VR全景 / other=其他', max_length=20, verbose_name='照片类别'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexphoto',
|
||||
name='complex',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='photos', to='fonrey_complex.complex', verbose_name='所属楼盘'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexphoto',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(auto_now_add=True, verbose_name='创建时间'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexphoto',
|
||||
name='created_by',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_complex_photos', to='org.staff', verbose_name='上传人'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexphoto',
|
||||
name='file_key',
|
||||
field=models.TextField(help_text='R2/S3 路径', verbose_name='文件存储路径'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexphoto',
|
||||
name='file_name',
|
||||
field=models.CharField(blank=True, default='', max_length=255, verbose_name='原始文件名'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexphoto',
|
||||
name='file_size',
|
||||
field=models.IntegerField(blank=True, help_text='单位:bytes', null=True, verbose_name='文件大小'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexphoto',
|
||||
name='height',
|
||||
field=models.IntegerField(blank=True, help_text='单位:px', null=True, verbose_name='图片高度'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexphoto',
|
||||
name='is_cover',
|
||||
field=models.BooleanField(default=False, help_text='楼盘封面图(每楼盘唯一)', verbose_name='是否封面图'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexphoto',
|
||||
name='sort_order',
|
||||
field=models.SmallIntegerField(default=0, help_text='同类别内的排序顺序', verbose_name='排序顺序'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexphoto',
|
||||
name='thumbnail_key',
|
||||
field=models.TextField(blank=True, default='', verbose_name='缩略图路径'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexphoto',
|
||||
name='width',
|
||||
field=models.IntegerField(blank=True, help_text='单位:px', null=True, verbose_name='图片宽度'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexpricetrend',
|
||||
name='avg_sale_price',
|
||||
field=models.DecimalField(blank=True, decimal_places=2, help_text='单位:万元/套', max_digits=12, null=True, verbose_name='月均售价'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexpricetrend',
|
||||
name='avg_unit_price',
|
||||
field=models.DecimalField(blank=True, decimal_places=2, help_text='单位:元/m²', max_digits=10, null=True, verbose_name='月均单价'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexpricetrend',
|
||||
name='complex',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='price_trends', to='fonrey_complex.complex', verbose_name='所属楼盘'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexpricetrend',
|
||||
name='created_at',
|
||||
field=models.DateTimeField(auto_now_add=True, verbose_name='创建时间'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexpricetrend',
|
||||
name='listing_count',
|
||||
field=models.IntegerField(blank=True, null=True, verbose_name='当月挂牌套数'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexpricetrend',
|
||||
name='record_month',
|
||||
field=models.DateField(help_text='统一存为该月1日,如 2026-04-01', verbose_name='月份'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexpricetrend',
|
||||
name='transaction_count',
|
||||
field=models.IntegerField(blank=True, null=True, verbose_name='成交套数'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexschool',
|
||||
name='complex',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='complex_schools', to='fonrey_complex.complex', verbose_name='所属楼盘'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexschool',
|
||||
name='school',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='complex_links', to='region.school', verbose_name='对口学校'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='complexschool',
|
||||
name='zone_type',
|
||||
field=models.CharField(blank=True, choices=[('guaranteed', '对口'), ('reference', '参考'), ('lottery', '摇号')], default='', help_text='guaranteed=对口(直升) / reference=参考(可能入读) / lottery=摇号', max_length=30, verbose_name='学区类型'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='roomunit',
|
||||
name='building',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='room_units', to='fonrey_complex.building', verbose_name='所属楼栋'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='roomunit',
|
||||
name='display_no',
|
||||
field=models.CharField(blank=True, default='', help_text='展示用完整房号,如「3-1-101」', max_length=50, verbose_name='展示房号'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='roomunit',
|
||||
name='floor',
|
||||
field=models.SmallIntegerField(help_text='实际层数,地下为负数', verbose_name='楼层'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='roomunit',
|
||||
name='floor_name',
|
||||
field=models.CharField(blank=True, default='', help_text='如「1层」「B1层」', max_length=20, verbose_name='楼层名称'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='roomunit',
|
||||
name='is_active',
|
||||
field=models.BooleanField(default=True, help_text='FALSE=已拆除/不存在', verbose_name='是否启用'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='roomunit',
|
||||
name='is_standard',
|
||||
field=models.BooleanField(default=False, help_text='TRUE=已归一化为标准结构', verbose_name='是否标准化'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='roomunit',
|
||||
name='room_no',
|
||||
field=models.CharField(help_text='如「01」「101」', max_length=30, verbose_name='房号'),
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user