【发布时间】:2021-08-05 05:14:41
【问题描述】:
所以我有一个get函数
class HorseEquipmentView(APIView):
lookup_url_kwarg = 'horse'
def get (self, request, format = None):
horse = 1
if horse != None:
tab = []
#queryset = HorseEquipment.objects.raw('SELECT H.horse_id, E.name FROM horse_equipment H JOIN equipment E ON H.equipment_id = E.id WHERE H.horse_id =' + str(horse))
queryset = HorseEquipment.objects.filter(horse_id=horse).select_related("equipment")
for i in queryset:
i.equipment = Equipment.objects.filter(id = 1).name
#equipment = HorseEquipment.objects.filter(horse_id=horse).select_related('equipment')
serializer = HorseEquipmentSerializer(queryset, many = True)
return Response(serializer.data)
else:
return Response(status = status.HTTP_400_BAD_REQUEST)
和我的设备模型:
class Equipment(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(unique=True, max_length=30, blank=True, null=True)
class Meta:
managed = False
db_table = 'equipment'
所以它有 id 和 name 属性,但不知何故,它在我的 get 函数上给了我错误,正是在我引用“name”属性的 for 循环中。你能帮我找出问题所在吗?
【问题讨论】:
-
您需要重新阅读有关
objects.filter(...)与objects.get(...)的部分。
标签: django django-models django-rest-framework django-views django-orm