Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 向staff_用户验证:Django Restframework_Python_Django_Django Rest Framework - Fatal编程技术网

Python 向staff_用户验证:Django Restframework

Python 向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

我想只有员工用户可以添加产品,最多可以添加10个产品

我可能是django的新手。我尝试了下面的方法,但我不知道如何向staff_用户验证他最多可以添加10个产品

如果有人能帮我,那就太好了,我要解决的是。事先非常感谢你

models.py

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__"