Extremely slow queryset lookup in Django with mysql as backend DB

My view has a search bar, which searches extremely slowly. There are four tables that I'm trying to pull information from Restaurant, Food, Menu, Quality.

The view sent a pk for food. I also have a local_zip and radius variable to find restaurant near a user. I use this to limit the number of restaurants. Then, I filter the objects by food selected and restaurants near them. Then I pull some quality info on the restaurants.

When I run it in the shell, it's actually normal speed. No one line takes super long, not sure why it's so slow on the server. What is extremely slow is displaying the data in the shell. For instance, if I just try to run 'table'. It takes a long time to show the data.

Here is the code that runs very slowly:

local_zip = request.session['local_zip']
radius = request.session['radius']
in_radius = [z.zip for z in zcdb.get_zipcodes_around_radius(local_zip, radius)]
list_ids = ['13', '427', '428'] #('ZIP', radius in miles)
# Restaurants table has about 500 observations
find_objects = Restaurants.objects.filter(Q(zipcode__in=in_radius) | Q(id__in=list_ids)).distinct()
# Menu table is large with about a million observation
objects_selected = Food.objects.filter(menu__menuid=pk)
table = objects_selected.filter(restaurants__in=find_objects).order_by('price').prefetch_related('restaurants')
#Food table has 10k objects
food_info = Food.objects.filter(foodid=pk)
# quality has about 600K objects
quality_info = Quality.objects.filter(food__foodid=pk,locality = str(5))[:1]