Python 向staff_用户验证:Django Restframework
我想只有员工用户可以添加产品,最多可以添加10个产品 我可能是django的新手。我尝试了下面的方法,但我不知道如何向staff_用户验证他最多可以添加10个产品 如果有人能帮我,那就太好了,我要解决的是。事先非常感谢你 models.pyPython 向staff_用户验证:Django Restframework,python,django,django-rest-framework,Python,Django,Django Rest Framework,我想只有员工用户可以添加产品,最多可以添加10个产品 我可能是django的新手。我尝试了下面的方法,但我不知道如何向staff_用户验证他最多可以添加10个产品 如果有人能帮我,那就太好了,我要解决的是。事先非常感谢你 models.py class Cuboid(models.Model): created_by = models.ForeignKey(User, on_delete=models.CASCADE) title = models.CharField(max_l
class Cuboid(models.Model):
created_by = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=80)
length = models.ForeignKey('FilterLength', on_delete=models.CASCADE)
created_on= models.DateTimeField(default=datetime.now())
序列化程序.py
class CuboidCreateSerializers(serializers.ModelSerializer):
class Meta:
model = Cuboid
fields = "__all__"
views.py
class CuboidCreateAPIView(generics.CreateAPIView):
model = Cuboid
queryset = Cuboid.objects.all()
serializer_class = CuboidCreateSerializers
permission_classes = [IsStaff]
文件中有一节概述了这一点: 伊萨明 IsAdminUser权限类将拒绝任何用户的权限,除非user.is\u staff为True,在这种情况下将允许权限 基于此,我认为您必须检查两件事,isAuthenticated和user.is_人员都必须是真实的。可能是因为工作人员的帐户已经过验证。使用
class CuboidCreateSerializer(serializers.ModelSerializer):
def验证创建人(自我,创建人):
最大计数=10
created_count=Cuboid.objects.filter(created_by=self.context['request'].user.count())
如果创建的\u计数>=最大\u计数:
引发序列化程序。ValidationError(“允许用户最多创建%s项”%max\u count)
由创建的返回
类元:
模型=长方体
fields=“\uuu all\uuuu”
如果我想向员工用户验证他每周最多可以添加10种产品,该怎么办?
class CuboidCreateSerializers(serializers.ModelSerializer):
def validate_created_by(self, created_by):
max_count = 10
created_count = Cuboid.objects.filter(created_by=self.context['request'].user).count()
if created_count >= max_count:
raise serializers.ValidationError("User allowed to create maximum of %s items" % max_count)
return created_by
class Meta:
model = Cuboid
fields = "__all__"