This is my 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
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. 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
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
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.