[英]Django query returning empty result in many to many
This is my model这是我的 model
class MenuItem(models.Model):
name = models.CharField(max_length=500, null=False)
description = models.CharField(max_length=500, null=True)
image_url = models.CharField(max_length=1000, null=True)
menu_category = models.ForeignKey(MenuCategory, on_delete=models.CASCADE)
def __str__(self):
return f'{self.name}'
class Venue(models.Model):
name = models.CharField(max_length=500, null=False)
def __str__(self):
return f'{self.name}'
class VenueMenu(models.Model):
venue = models.ForeignKey(Venue, null=False, on_delete=models.CASCADE)
menu_item = models.ManyToManyField(MenuItem, null=False)
This is my serializer这是我的序列化器
class MenuItemSerializer(serializers.ModelSerializer):
menu_category = MenuCategorySerializer()
class Meta:
model = MenuItem
fields = '__all__'
class VenueMenuSerializer(serializers.ModelSerializer):
menu_item = MenuItemSerializer(many=True)
class Meta:
model = VenueMenu
fields = '__all__'
and this is my view这是我的观点
@api_view(['GET'])
def venue_menu_response_detail(request):
if request.GET.get('venue'):
venue_menu_list = VenueMenu.objects.filter(venue__name=request.GET.get('venue'))
serializer = VenueMenuSerializer(venue_menu_list, many=True)
return Response(serializer.data)
this is my request http://127.0.0.1:8000/venue_menu_response_list?venue=venu_name这是我的要求http://127.0.0.1:8000/venue_menu_response_list?venue=venu_name
I want to get the details of menu items associated with a single venue this query has the response of 200 OK but it is returning empty.我想获取与单个场所关联的菜单项的详细信息,此查询的响应为 200 OK,但它返回空。 When am querying on the basis of venue id am getting the desired result but I want to get the result on the basis of the name当我根据场地 id 查询时,我得到了想要的结果,但我想根据名称得到结果
try this:尝试这个:
serializer:序列化器:
class MenuItemSerializer(serializers.ModelSerializer):
class Meta:
model = MenuItem
fields = '__all__'
class venuMenuSerializer(serializers.ModelSerializer):
class Meta:
model = VenueMenu
fields = '__all__'
views:意见:
@api_view(['GET'])
def venueMenuView(request):
venuee = request.query_params.get('venue')
venue = VenueMenu.objects.filter(venue__name=venuee)
serializer = venuMenuSerializer(venue,many=True)
return Response(serializer.data,status=status.HTTP_200_OK)
urls:网址:
localhost:8000/api/yourview/?venue=venue1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.