Обратный поиск Django в многоуровневых моделях

#python #django #relationship

#python #django #взаимосвязь

Вопрос:

Я безуспешно пытаюсь запросить типы хранилищ в определенном месте. Однако я могу запросить местоположения в городе, используя показанные модели.Я хочу использовать наборы запросов в меню с подменю с другим подменю в корневом URL-адресе проекта. Пожалуйста, помогите.

 #models

class Supplier():
    shopping_center = models.ForeignKey('Shopping_center')
    storetype = models.ForeignKey('Storetype')



class City(models.Model):
    name = models.CharField()



class Location(models.Model):
    city = models.ForeignKey('City')


    
    
class Shopping_Center(models.Model):
    location = models.ForeignKey('Location')



class Storetype(models.Model):
    title = models.CharField()
                         
    
  

Ответ №1:

 objs = Supplier.objects.select_related('storetype ', 'shopping_center__location__city__name', ).filter(shopping_center__location__city__name__in=['some city'])
  

отфильтруйте приведенный выше цикл через objs, чтобы получить storetype

Комментарии:

1. «какой-то город» предполагает жесткое кодирование, чего я пытаюсь избежать

2. Вы можете передавать все, что захотите. Это пример.

3. Я понимаю, что могу это сделать, но это не то решение, которое я ищу. Я могу сделать city. location_set.all() но не может выполнить location.storetype_set.all() для отображения типа хранилища в подменю шаблона только в том случае, если тип хранилища доступен в этом местоположении.