У меня есть три модели:
class Country(models.Model):
name = models.CharField(max_length=200)
class City(models.Model):
name = models.CharField(max_length=200)
country = models.ForeignKey(Country,on_delete=models.CASCADE)
class Restaurant(models.Model):
city = models.ManyToManyField(City)
В моей базе данных 120 городов и 25 стран.Но созданные рестораны расположены только в 20 городах.
Проблема: мне нужен запрос, чтобы найти все города, где расположены мои рестораны.И еще один запрос для извлечения всех стран, где расположены мои рестораны.
Решение:
Для первого запроса я использовал идею, предложенную @Daniel Roseman:
City.objects.exclude(restaurant=None)
Для второго запроса я продолжал получать пустой набор запросов.Мне пришлось пользователя фильтр:
Country.objects.exclude(city__restaurant__isnull=False).distinct()