Django REST get() возвращает более одного объекта

Я пытаюсь использовать вложенные сериализаторы для получения ответа, который включает поля из двух моделей. Однако я получаю следующую ошибку

get() returned more than one Location -- it returned more than 20!

При поиске решения кажется, что эта ошибка возникает при использовании get, но в моем представлении я использую вместо него filter. Я пытаюсь понять, какая часть кода вызывает ошибку.

Models.py

class Microcontrollers(models.Model):
    name = models.CharField(max_length=25)
    serial_number = models.CharField(max_length=20, blank=True, null=True)
    type = models.CharField(max_length=15, blank=True, null=True)
    software = models.CharField(max_length=20, blank=True, null=True)
    version = models.CharField(max_length=5, blank=True, null=True)
    date_installed = models.DateField(blank=True, null=True)
    date_battery_last_replaced = models.DateField(blank=True, null=True)
    source = models.CharField(max_length=10, blank=True, null=True)
    friendly_name = models.CharField(max_length=45, blank=True, null=True)
    private = models.IntegerField()
    datetime_updated = models.DateTimeField(db_column='DateTime_Updated')  # Field name made lowercase.

    class Meta:
        managed = True
        db_table = 'microcontrollers'
        verbose_name_plural = "Microcontrollers"

    def __str__(self):
        return self.friendly_name

class StationStatus(models.Model):
    microcontroller = models.ForeignKey(Microcontrollers, models.DO_NOTHING)
    date_from = models.DateField()
    date_to = models.DateField(blank=True, null=True)
    location = models.CharField(max_length=45)
    active = models.IntegerField()
    notes = models.CharField(max_length=100, blank=True, null=True)
    datetime_updated = models.DateTimeField(db_column='DateTime_Updated')  # Field name made lowercase.

    class Meta:
        managed = True
        db_table = 'station_status'
        verbose_name_plural = 'Station Status'

Serializers.py

class StationInfoSerializer(serializers.ModelSerializer):
    def create(self, validated_data):
        pass

    def update(self, instance, validated_data):
        pass

    class Meta:
        model = StationStatus
        fields = ['location', 'active']

class StationSerializer(serializers.ModelSerializer):
    info = StationInfoSerializer(many=True, read_only=True)

    def create(self, validated_data):
        pass

    def update(self, instance, validated_data):
        pass

    class Meta:
        model = Microcontrollers
        fields = ['name', 'friendly_name', 'info']

Views.py

class stationsBasicInfo(generics.ListAPIView):
    #authentication_classes = (TokenAuthentication,)
    #permission_classes = (IsAuthenticated,)
    serializer_class = StationInfoSerializer

    def get_queryset(self):
        source = self.kwargs['sourceName']
        name = self.kwargs['stationName']
        data = Microcontrollers.objects.filter(name=name)
        return data

    def list(self, request, *args, **kwargs):
        res = super(stationsBasicInfo, self).list(request, *args, **kwargs)
        res.data = {"station_info": res.data}
        return res

Полное сообщение об ошибке

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