如何在Django

时间:2018-06-11 09:04:56

标签: python django django-models django-rest-framework django-views

我在views.py文件中编写了一个类,用于在auth_group表中添加组。 但我收到一条错误消息: -

  

重复键值违反唯一约束“auth_group_name_key”   DETAIL:Key(name)=()已经存在。

以下是我的views.py文件代码。

class AddGroup(APIView):
    authentication_classes = (SessionAuthentication, BasicAuthentication)
    permission_classes = (IsAuthenticated,)

    def post(self, request):
        log.debug("Getting into the function !!")
        try:

            log.debug(request.data)
            group11 = Group.objects.create()
            log.debug(group11)
            group11.save(2, str(request.data['customer']))
            # group11.save(str(request.data['customer']))
            log.debug(group11)
            return Response(request.data['customer']+' created successfully !!', status= status.HTTP_201_CREATED)

以下是我的models.py代码

class MyGroup(GroupManager):
    use_in_migrations = True

    def create(self, group_name):
        # GroupManager.create(group_name)
        group = self.model(
            group_name=group_name,
        )
        group.save(using=self._db)
        return group

1 个答案:

答案 0 :(得分:0)

您没有将name参数传递给create()类中的AddGroup方法:

group11 = Group.objects.create(name="some_name") # here

因此,使用empy名称创建的每个新组都违反了唯一约束。