采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
在实际生产中,商品的字段应该并不仅限于作者所说的那些字段,比方说商品分【某某味】【某某味】【某某味】这种情况,在创建models时应该怎么处理?最后在rest api中表现的就是如图所示这种多规格多种类但是同属于一个商品的情况下,models如何设置?
choices
https://docs.djangoproject.com/en/1.11/ref/models/fields/#choices
from django.db import modelsclass Student(models.Model): FRESHMAN = 'FR' SOPHOMORE = 'SO' JUNIOR = 'JR' SENIOR = 'SR' YEAR_IN_SCHOOL_CHOICES = ( (FRESHMAN, 'Freshman'), (SOPHOMORE, 'Sophomore'), (JUNIOR, 'Junior'), (SENIOR, 'Senior'), ) year_in_school = models.CharField( max_length=2, choices=YEAR_IN_SCHOOL_CHOICES, default=FRESHMAN, ) def is_upperclass(self): return self.year_in_school in (self.JUNIOR, self.SENIOR)
无限级分类示意图(参考自《Yii 2.0开发一个仿京东商城平台》http://coding.imooc.com/class/57.html)
我认为choices只适用于固定的值,比方说choices的key是【规格】,这个key所拥有的value是【规格1、规格2、规格3】,这种我认为只适用于所有商品都有这个【规格】并且规格都为【规格1、规格2、规格3】。例如,商品名为康师傅方便面,【规格】为【香辣味、酸菜味】,而商品名为汤达人方面的时候【规格】这个key的value就是【海豚味,清汤味】。即便choices的对象是另外一个数据表,则每次选择商品都必须选择【香辣味、酸菜味、海豚味,清汤味】中的一个,如果前期产品少这个可以慢慢选,商品多了岂不要在很多选项中找一个?我认为choices满足不了这种需求。例如商品A没有【规格】,商品B有【规格】,规格内容为规格1、2、3。商品C的规格又为456。甚至最后规格不同导致价格不同,还需要做出相应的变化。
三种选择供参考: 1. 单独维护一张表,这张表有商品类别、规格、价格的,并且每一行有唯一的标识。把这个标识填入目前的主表中。好处是避免使用外键,坏处是每次可能产生两次查询。 2. 也是新建表,内容与上一选项相同。主表建立外键。数据库较小时适用。 3. 把详细信息全部填入主表。
或者你可以直接使用mongodb,不必在意字段的划分。
登录后可查看更多问答,登录/注册
Django REST framework课程视频,RESTFul API前后端分离开发
10.3k 1
4.3k 51
1.3k 19
972 19
1.7k 19