Как использовать Django переменную сеанса в models.py - PullRequest
0 голосов
/ 25 апреля 2020

Я хочу использовать переменную сеанса Django в файле models.py. Как мне это сделать?

Я хочу получить пин-код пользователя / почтовый индекс и должен выполнить запрос, используя это.

pin_code = #wanna get from session
price = ProductPrice.objects.get(product=self.pk, pincode=pin_code)

Мне нужно получить PIN-код из сеанса.

1 Ответ

0 голосов
/ 25 апреля 2020

В методе вашей модели у вас нет доступа к запросу, поэтому у вас нет доступа к сеансу. Один из способов, которым вы могли бы вызвать метод с сеансом, - это добавить тег шаблона , который передает значение из сеанса в ваш метод

@register.simple_tag(takes_context=True)
def price(context, product):
    return product.get_price(pin_code=context.request.session.get('pin_code'))

В вашем шаблоне вы бы использовали это как

{% load product_tags %}

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