【发布时间】:2018-09-16 13:13:05
【问题描述】:
我正在尝试对两个表进行联接 - 希望从 ReleasesAll 和 AudioLinks 返回所有数据。
错误
/api/release/0 处的字段错误
select_related 中给出的字段名称无效:“audio_links”。选择 是:(无)
models.py
class ReleasesAll(models.Model):
id = models.IntegerField(primary_key=True)
artist = models.CharField(max_length=255)
all_artists = models.CharField(max_length=200)
remixers = models.TextField(blank=True, null=True)
format = models.CharField(max_length=80)
title = models.CharField(max_length=255)
label = models.CharField(max_length=255)
label_no_country = models.CharField(max_length=255)
class Meta:
managed = False
db_table = 'releases_all'
class AudioLinks(models.Model):
release = models.ForeignKey('ReleasesAll', models.DO_NOTHING, db_column='release_id')
track_number = models.IntegerField()
track_name = models.CharField(max_length=500)
url = models.CharField(max_length=500)
m3u_link = models.TextField()
type = models.CharField(max_length=50, blank=True, null=True)
class Meta:
managed = False
db_table = 'audio_links'
views.py
class ListReleaseDetailView(generics.RetrieveUpdateDestroyAPIView):
queryset = ReleasesAll.objects.all()
serializer_class = ReleasesSerializer
def get(self, request, *args, **kwargs):
try:
a_release = self.queryset.select_related('audio_links__release_id').get(pk=kwargs['release_id'])
return Response(ReleasesSerializer(a_release).data)
except ReleasesAll.DoesNotExist:
return Response(
data = {
"message": "{} does not exist".format(kwargs["release_id"])
},
status=status.HTTP_404_NOT_FOUND
如果我删除 select_related 则查询有效
【问题讨论】:
标签: python django django-models django-rest-framework