Вы можете получить пиццу Pineapple-Only / Margherita из ресторанов Pizza от Papa:
restaurant = Restaurant.objects.get(name="Papa's Pizza")
veg_pizzas = restaurant.pizzas_offered.filter(type='vegetarian')
Вышеизложенное делает следующее:
- Получить ресторан
- Извлеките пиццу выбранного ресторана для определенных типов
Надеюсь, поможет.
ОБНОВИТЬ
class Restaurant(models.Model):
name = models.CharField(max_length=255, null=True, blank=True)
def get_pizzas(self, type):
return self.pizzas_offered.filter(type=type)
# Get vegetarian pizzas from Papa's Pizza restaurant
$> restaurant = Restaurant.objects.get(name="Papa's Pizza")
$> pizzas = restaurant.get_pizzas(type='vegetarian')
ОБНОВЛЕНИЕ 2
Запрос: сериализатор ресторана, который сериализует «pizzas_offered» как «пиццу»,
class RestaurantSerializer(serializers.ModelSerializer):
pizzas = serializers.SerializerMethodField()
class Meta:
model = Restaurant
fields = ('name', 'pizzas')
def get_pizzas(self, restaurant):
return PizzaSerializer(restaurant.pizzas_offered.all(), many=True).data
Документация: http://www.django-rest-framework.org/api-guide/fields/#serializermethodfield .