我是Django和DRF的新手,对序列化有疑问 . 我有模特:
class Commodity(models.Model):
shop = models.ForeignKey(Company, on_delete=models.PROTECT)
price = models.DecimalField(max_digits=10, decimal_places=2)
active = models.BooleanField(default=False)
class Clother(models.Model):
commodity = models.ForeignKey(Commodity, related_name='commodity', on_delete=models.CASCADE)
color = models.ManyToManyField(Color, related_name='color')
material = models.ManyToManyField(Material, related_name='material')
gender = models.CharField(max_length=2, choices=GENDER_CHOICES, default=UNISEX)
class Outwear(models.Model):
clother = models.ForeignKey(Clother, on_delete=models.CASCADE)
name = models.CharField(max_length=30, blank=True)
outwear_type = models.ForeignKey(OutwearType, on_delete=models.CASCADE)
size = models.ManyToManyField(ClotherSize)
所以我想制作一个像这样的Serializer:
class OutwearSerializer(serializers.ModelSerializer):
commodity = CommoditySerializer(many=False, read_only=False)
clother = ClotherSerializer(many=False, read_only=False)
class Meta:
model = Outwear
fields = ('commodity', 'clother', 'name', 'outwear_type', 'size')
据我所知,read_only字段让我可以进一步添加或编辑Outwear对象,但我应该有2种类型的permition:
-
所有用户只能看到活动的商品对象 .
-
只有公司可以创建和编辑自己的对象 .
我是否需要为 read_only=True/False
制作2个串行器模型?什么是最佳实践,在哪里可以找到熟悉的好例子?我称之为用户 - 未授权用户 . 公司是授权用户 . 谢谢!
1 回答
对于你的第一个问题:
第二个问题含糊不清 . 首先定义用户角色