Набор запросов Django для отображения определенного поля на веб-странице

Я пытаюсь отобразить варианты (поля), которые связаны с моделью RecordVariant на моей веб-странице у меня есть queryset на моем представлении по умолчанию как я могу изменить мой queryset или получить метод queryset для отображения вариантов, которые связаны с конкретной записью.

class RecordVariant(models.Model):
    variants = models.ForeignKey(Variant_model, related_name = 'records', on_delete = 
                                models.CASCADE)

class Variant(models.Model):
    name = models.CharField(max_length = 23, blank=True, null=True)
    

class RecordVariantListAPIView(RecordMixin, ListAPIView):
    lookup_url_kwarg = 'record_id'
    serializer_class = RecordVariantSerializer
    permission_classes = [IsAuthenticated]
    pagination_class = StandardResultsSetPagination
    filter_backends = (filters.OrderingFilter,)
    queryset = RecordVariant.objects.all()
    ordering = 'variants'
    ordering_param = 'ordering'
    ordering_fields = (
    'variants',
)

    def get_total_queryset(self):
        queryset = (
            super()
            .get_queryset()
           .filter(record=self.record)
        )

в отношениях foreignkey дочерним должен быть тот, у которого есть поле foreginkey. Это означает, что ваш класс модели Variant должен иметь это поле

class Variant(models.Model):
    name = models.CharField(max_length = 23, blank=True, null=True)
    records = models.ForeignKey(RecordVariant, related_name = 'records', 
              on_delete = models.CASCADE)


class RecordVariant(models.Model):
    pass

и для сериализаторов

class Variant(serializers.ModelSerializer):

    class Meta:
        model = Variant
        fields = "['name']"


class RecordVariant(serializers.ModelSerializer):
    records = VariantSerializer(many=True)

    class Meta:
        model = RecordVariant
        fields = '__all__'

вид

class RecordVariantListAPIView(ListAPIView):
    serializer_class = RecordVariantSerializer
    permission_classes = [IsAuthenticated]
    queryset = RecordVariant.objects.all()

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