【发布时间】:2022-01-19 08:18:52
【问题描述】:
我需要加入一个没有直接关系的表。
models.py:
class FooModel():
bar = ForeignKey(Bar)
class BarModel():
pass
class BazModel():
bar = ForeignKey(Bar)
class QuxModel():
foo = ForeignKey(Foo)
试图从 Baz 联系 Foo,但没有成功
viewset.py:
def BazView(viewsets.ModelViewSet):
queryset = model.BazModel.objects.all().prefetch_related('bar').prefetch_related('baz__bar')
serializer_class = serializer.Baz
def get_queryset(self):
return self.queryset
serializer.py
class FooSerializer(serializer.ModelSerializer):
class Meta:
model = FooModel
exlude = []
class BarSerializer(serializer.ModelSerializer):
class Meta:
model = BarModel
exlude = []
class BazSerializer(serializer.ModelSerializer):
foo = FooSerializer()
class Meta:
model = BarModel
exlude = []
class QuxSerializer(serializer.ModelSerializer):
class Meta:
model = QuxModel
exlude = []
像这样使用prefetch 我得到一个错误,说 Baz 没有 foo 字段。
也想从基于 Foo FK 的 QuxModel 获取数据...
我该怎么做?
【问题讨论】:
标签: django django-models django-rest-framework django-queryset