У меня есть приложение под названием Location. Местоположение имеет страну, штат, город, Big_City_Nearby, долготу, широту.
У меня есть заявка на предмет продажи. Элемент имеет название, ссылку, описание, цену и местоположение, которые являются ключом ForeignKey ().
Теперь, если кто-то хочет просмотреть все товары для продажи в США, он нажимает на ссылку (скажем, http://example.com/United-States/), и URL-адрес будет передаваться в «США» как страна с указанием штата, города и big_city_nearby пустой.
#in view.py
class by_location(request, country, state, city, big_city_nearby)
location = Location.objects.filter(country=country, state=state, city=city, big_city_nearby=big_city_nearby)
items = Items.objects.filter(location__in=[location.id for loc in location])
return render_to_response('item/by_location.html', {"items":itmes, "country":countyr, "cit":city, "nearby":big_city_nearby})
Нет проблем, если они перейдут (http://example.com/United_State/California/Oakland), так как я могу продолжить и перечислить все предметы в Окленде без необходимости отображать местоположение по найденным предметам.
Проблема в том, когда выбирают http://example.com/United_States/ или http://example.com/United_States/California/. Так как теперь я должен отображать расположение каждого предмета, поскольку предметы могут быть из разных городов.
Таким образом, когда шаблон получает список элементов, он получает только ForeignKey (Location) в каждом элементе. Я могу поставить еще один цикл, где каждый элемент проверяется, а объект Location извлекается и помещается в кортеж с объектом item. Но это было бы очень неэффективно SQL. Поскольку я должен был бы поразить базу данных для каждого найденного предмета, чтобы получить объект фактического местоположения.
Можно ли сказать, что ForeignKey удерживает город вместо идентификатора в строке местоположения в базе данных.
Чтобы упростить вопрос: есть ли лучший способ оставить местоположение как приложение, без необходимости указывать страну, штат, город ... и т. Д. в каждой строке товара.
Thx
VN44CA