Django查询集显示网页上的特定字段



我试图在我的网页上显示与模型RecordVariant相关的变量(字段),我在我的视图默认上有查询集,我如何改变我的查询集或获得查询集方法来显示与特定记录相关的变量。

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字段的。这意味着你的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()

最新更新