【发布时间】:2021-09-17 12:30:25
【问题描述】:
每次用户创建角色时,我都会尝试创建一个新组,问题是我的代码逻辑一直有错误,我真的不知道该怎么做才能让它工作,这就是我的到目前为止:
from rest_framework import generics
from django.contrib.auth.models import Group
class CreateRoleView(generics.ListCreateAPIView):
queryset = Roles.objects.all()
serializer_class = CreateRolesSerializers
permission_classes = (IsAuthenticated,)
def post(self, request, *args, **kwargs):
role_name=self.kwargs['role_name']
created = Group.objects.create(name=role_name)
return self.create(request, created, *args, **kwargs)
这是我的问题的屏幕: enter image description here
这是我的序列化器:
class RolesSerializers(serializers.ModelSerializer):
class Meta:
model = Roles
fields = ('__all__')
这是我的模型:
class Roles(models.Model):
role_id = models.AutoField(primary_key=True)
role_code = models.CharField(max_length=255, unique=True)
role_name = models.CharField(max_length=255)
description = models.CharField(max_length=255)
【问题讨论】:
-
你必须在你的POST正文中传递了
role_name,所以你需要从request.data访问它? -
我怎么可能将角色名称玩具传递给 POST 正文,不是
role_name=.kwargs['role_name']enough 吗? -
它已经在那里了。可以试试打印吗
-
那时我还没有创建角色。所以只需从
request.data['role_name']获取角色名称 -
我将第一行更改为
role_name=get_object_or_404(Roles, role_name=request.data['role_name']),但它似乎可以正常工作,但不要创建任何新对象
标签: django api django-models django-rest-framework