FieldError в / generic / robot / 2 / Невозможно разрешить ключевое слово 'id' в поле. Варианты: - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь получить доступ к определенному объекту с целочисленным значением первичного ключа. Проблема, с которой я сталкиваюсь, заключается в том, что в модели я явно определил свой первичный ключ, но не могу понять, по какой причине у меня возникает эта ошибка. Ошибка:

FieldError at /generic/robot/2/
Cannot resolve keyword 'id' into field. Choices are: robotID, robotName, robotprofile

URL-адрес:

path('generic/robot/<int:id>/', GenericRobotAPIView.as_view())

Модель:

class Robot(models.Model):
    robotID = models.AutoField(db_column='robotID', primary_key=True)
    robotName = models.CharField(db_column='robotName', max_length=50)

    def __str__(self):
        return self.robotName

Просмотр:

class GenericRobotAPIView(generics.GenericAPIView, mixins.ListModelMixin, mixins.CreateModelMixin,
                          mixins.UpdateModelMixin, mixins.DestroyModelMixin, mixins.RetrieveModelMixin):
    serializer_class = RobotSerializer
    queryset = Robot.objects.all()

    lookup_field = 'id'

    def get(self, request, id= None):
        if id:
            return self.retrieve(request)
        else:
            return self.list(request)

    def post(self, request):
        return self.create(request)

    def put(self, request, id=None):
        return self.update(request, id)

    def delete(self, request, id):
        return self.destroy(request, id)

Сериализатор:

class RobotSerializer(serializers.ModelSerializer):
    class Meta:
        model = Robot
        fields = '__all__'

Я пробовал query_set.get (Robot.roboID) если я делаю это, это дает мне ошибку утверждения. Например, я пишу этот URL 'generic / robot / 2 /', это должно дать мне информацию об объекте этой модели, я знаю, что есть другие способы получить Detaiview, но сейчас я просто хочу использовать этот GenericAPIView, чтобы сделать вещь

...