Как передать объект из элемента управления select в другой вид в django - PullRequest
0 голосов
/ 12 апреля 2019

Я заполняю элемент управления select в шаблоне django, но параметры элемента поступают из внешнего веб-сервиса, который запрашивает несколько раз. Есть ли способ передать объекты или «хранить» данные (например, jsf) в представлении? Я не хочу запрашивать у веб-службы экземпляр объекта.

Фактически параметры заполняются идентификатором объекта в параметре значения. Я также использовал индекс объекта в массиве, но я не знаю, что делать.

<option value="{{ forloop.counter }}">
<option value="{{ item.id }}">
def get(self, request):
    client = ExternalServiceClient()
    products = client.all_products()
    context_data = {'product_list': products}
    return render(request, 'product-create.html', context=context_data)

Я ожидаю запросить внешнюю службу только один раз по форме и передать весь объект в представление метода post.

1 Ответ

0 голосов
/ 12 апреля 2019

Может быть, это то, что вы ищете. кэширование вида что-то вроде:

from django.views.decorators.cache import cache_page

@cache_page(60 * 15)# cache 15 minutes
def my_view(request):
    ...

почему кеширование? это потому, что вам нужно проверить, есть ли обновление или нет. Вы можете проверить здесь для более подробного объяснения https://docs.djangoproject.com/en/2.2/topics/cache/.

Но если вам не нужно проверять какие-либо обновления, я думаю, что лучше хранить для вас БД и не делать никаких запросов к внешнему API при каждом вызове.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...