Атрибут Basename в тех же маршрутах

Относительно говоря, у меня есть две простые модели: Процессор и Материнская плата.

class Processor(Product):
    supply_type = models.CharField(max_length=10)
    socket = models.CharField(max_length=20)
    cores_amount = models.IntegerField()
    threads_amount = models.IntegerField()
    technological_process = models.IntegerField()


class Motherboard(Product):
    socket = models.CharField(max_length=20)
    ram_generation = models.CharField(max_length=10)
    ram_type = models.CharField(max_length=10)
    ram_slots_amount = models.IntegerField()

Для них также написаны соответствующие сериализаторы.

class ProcessorSerializer(ModelSerializer):
    class Meta:
        model = Processor
        fields = '__all__'


class MotherboardSerializer(ModelSerializer):
    class Meta:
        model = Motherboard
        fields = '__all__'

И, конечно, наборы представлений.

class ProcessorViewSet(ModelViewSet):
    queryset = Processor.objects.filter(is_published=True)
    serializer_class = ProcessorSerializer
    lookup_field = 'slug'


class MotherboardViewSet(ModelViewSet):
    queryset = Motherboard.objects.filter(is_published=True)
    serializer_class = MotherboardSerializer
    lookup_field = 'slug'

В urls был создан SimpleRouter, в который были добавлены следующие маршруты.

router = routers.SimpleRouter()

router.register(r'processors', ProcessorViewSet)
router.register(r'motherboards', MotherboardSerializer)

Когда я пытаюсь выполнить миграцию, я получаю следующую ошибку:

router.register(r'motherboards', MotherboardSerializer) assert queryset is not None, 'basename аргумент не указан, и could '
AssertionError: basename аргумент не указан, и не удалось автоматически определить имя из набора представлений, так как у него нет .queryset атрибута.

Я попытался добавить этот атрибут, однако появляется ошибка, что метод get_extra_actions не определен. У меня есть три старые модели, добавленные таким же образом. Проблема возникла именно при добавлении новых моделей и маршрутов для них (в данном случае материнской платы). Хотелось бы понять, почему Django ругается в одном случае, но не ругается в другом.

Вернуться на верх