@@ -68,7 +68,7 @@ class BrandInfoAdmin(admin.ModelAdmin): |
||
68 | 68 |
class ModelInfoAdmin(AdvancedExportExcelModelAdmin, DeleteModelAdmin, admin.ModelAdmin): |
69 | 69 |
list_display = ('pk', 'brand_id', 'brand_name', 'jancode', 'model_id', 'model_name', 'model_uni_name', 'model_full_name', 'model_descr', 'image', 'url', 'image2', 'integral', 'position', 'display', 'is_important', 'shot_type_id', 'shot_member_integral', 'shot_member_image', 'shot_member_name', 'status', 'created_at', 'updated_at') |
70 | 70 |
list_filter = ('brand_name', 'shot_type_id', 'display', 'status') |
71 |
- readonly_fields = ('brand_name', 'factory_fee') |
|
71 |
+ readonly_fields = ('brand_name', ) |
|
72 | 72 |
search_fields = ('brand_id', 'brand_name', 'jancode', 'model_id', 'model_name', 'model_uni_name', 'model_full_name', 'model_descr') |
73 | 73 |
|
74 | 74 |
def save_model(self, request, obj, form, change): |
@@ -0,0 +1,36 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+ |
|
3 |
+# Generated by Django 3.2.6 on 2023-02-08 05:44 |
|
4 |
+ |
|
5 |
+from django.db import migrations, models |
|
6 |
+ |
|
7 |
+ |
|
8 |
+class Migration(migrations.Migration): |
|
9 |
+ |
|
10 |
+ dependencies = [ |
|
11 |
+ ('mch', '0065_auto_20221118_1657'), |
|
12 |
+ ] |
|
13 |
+ |
|
14 |
+ operations = [ |
|
15 |
+ migrations.RemoveField( |
|
16 |
+ model_name='modelinfo', |
|
17 |
+ name='category', |
|
18 |
+ ), |
|
19 |
+ migrations.RemoveField( |
|
20 |
+ model_name='modelinfo', |
|
21 |
+ name='factory_fee', |
|
22 |
+ ), |
|
23 |
+ migrations.RemoveField( |
|
24 |
+ model_name='modelinfo', |
|
25 |
+ name='factory_yuan', |
|
26 |
+ ), |
|
27 |
+ migrations.RemoveField( |
|
28 |
+ model_name='modelinfo', |
|
29 |
+ name='warehouse', |
|
30 |
+ ), |
|
31 |
+ migrations.AddField( |
|
32 |
+ model_name='modelinfo', |
|
33 |
+ name='model_uni_full_name', |
|
34 |
+ field=models.CharField(blank=True, help_text='型号统一全名称', max_length=255, null=True, verbose_name='model_uni_full_name'), |
|
35 |
+ ), |
|
36 |
+ ] |
@@ -162,21 +162,16 @@ class ModelInfo(BaseModelMixin): |
||
162 | 162 |
model_id = ShortUUIDField(_(u'model_id'), max_length=32, help_text=u'型号唯一标识', db_index=True, unique=True) |
163 | 163 |
model_name = models.CharField(_(u'model_name'), max_length=32, blank=True, null=True, help_text=u'型号名称') |
164 | 164 |
model_uni_name = models.CharField(_(u'model_uni_name'), max_length=32, blank=True, null=True, help_text=u'型号统一名称') |
165 |
+ model_uni_full_name = models.CharField(_(u'model_uni_full_name'), max_length=255, blank=True, null=True, help_text=u'型号统一全名称') |
|
165 | 166 |
model_full_name = models.CharField(_(u'model_full_name'), max_length=255, blank=True, null=True, help_text=u'型号全名称') |
166 | 167 |
model_descr = models.TextField(_(u'model_descr'), max_length=255, blank=True, null=True, help_text=u'型号描述') |
167 | 168 |
model_mount = models.CharField(_(u'model_mount'), max_length=32, choices=MOUNT_TUPLE, default='SONY', help_text=u'镜头卡口') |
168 | 169 |
|
169 |
- category = models.CharField(_(u'category'), max_length=32, blank=True, null=True, help_text=u'型号类别', db_index=True) |
|
170 |
- warehouse = models.CharField(_(u'warehouse'), max_length=32, blank=True, null=True, help_text=u'所属仓库', db_index=True) |
|
171 |
- |
|
172 | 170 |
image = models.ImageField(_(u'image'), upload_to=upload_path, blank=True, null=True, help_text=u'横图') |
173 | 171 |
url = models.CharField(_(u'url'), max_length=255, blank=True, null=True, help_text=u'链接') |
174 | 172 |
|
175 | 173 |
image2 = models.ImageField(_(u'image2'), upload_to=upload_path, blank=True, null=True, help_text=u'方图') |
176 | 174 |
|
177 |
- factory_yuan = models.FloatField(_(u'factory_yuan'), default=1000, help_text=u'出厂价(元)') |
|
178 |
- factory_fee = models.IntegerField(_(u'factory_fee'), default=100000, help_text=u'出厂价(分)') |
|
179 |
- |
|
180 | 175 |
integral = models.IntegerField(_(u'integral'), default=100, help_text=u'【销售员】卡路里') |
181 | 176 |
|
182 | 177 |
position = models.IntegerField(_(u'position'), default=1, help_text=u'排序') |
@@ -257,13 +252,10 @@ class ModelInfo(BaseModelMixin): |
||
257 | 252 |
'model_uni_name': self.model_uni_name, |
258 | 253 |
'model_full_name': self.model_full_name, |
259 | 254 |
'model_descr': self.model_descr, |
260 |
- 'category': self.category, |
|
261 |
- 'warehouse': self.warehouse, |
|
262 | 255 |
'image_path': self.image_path, |
263 | 256 |
'image_url': self.image_url, |
264 | 257 |
'image2_path': self.image2_path, |
265 | 258 |
'image2_url': self.image2_url, |
266 |
- 'factory_yuan': self.factory_yuan, |
|
267 | 259 |
'integral': self.integral, |
268 | 260 |
'is_important': self.is_important, |
269 | 261 |
} |
@@ -327,7 +327,7 @@ class ShotTypeInfo(BaseModelMixin, BrandInfoMixin): |
||
327 | 327 |
|
328 | 328 |
@property |
329 | 329 |
def shots(self): |
330 |
- models = ModelInfo.objects.filter(shot_type_id=self.shot_type_id, status=True, is_show_shot=True) |
|
330 |
+ models = ModelInfo.objects.filter(shot_type_id=self.shot_type_id, status=True, is_show_shot=True).order_by('-pk') |
|
331 | 331 |
return [model.member_shot_data for model in models] |
332 | 332 |
|
333 | 333 |
@property |