models
class Depart(models.Model):
name = models.CharField(verbose_name='部门名', max_length=32)
class Tag(models.Model):
name = models.CharField(verbose_name='标签名', max_length=32)
class UserInfo(models.Model):
username = models.CharField(verbose_name='用户名', max_length=32)
password = models.CharField(verbose_name='密码', max_length=32)
token = models.CharField(verbose_name='token', max_length=64, null=True, blank=True)
role = models.SmallIntegerField(verbose_name='角色', choices=((1, '经理'), (2, '总监'), (3, '普通'),), default=3)
depart = models.ForeignKey(verbose_name='部门', to='Depart', on_delete=models.CASCADE, default=1)
c_time = models.DateTimeField(verbose_name='创建时间', auto_now=True)
tags = models.ManyToManyField(to='Tag', verbose_name='标签')
序列化
# tag的序列化
class TagSerializer(serializers.ModelSerializer):
class Meta:
model = models.Tag
fields = '__all__'
# Depart的序列化
class DepartSerializer(serializers.ModelSerializer):
class Meta:
model = models.Depart
fields = '__all__'
class UserSerializer(serializers.ModelSerializer):
depart = DepartSerializer()
# 不是一对一
tags = TagSerializer(many=True)
class Meta:
model = models.UserInfo
fields = '__all__'
view
class UserView(OrPermissionAPIView):
def get(self, request, *args, **kwargs):
# 多个对象
queryset = models.UserInfo.objects.all()
queryset = UserSerializer(instance=queryset, many=True)
return Response(queryset.data)