Как сохранить первичный ключ в переменной сеанса - PullRequest
0 голосов
/ 08 января 2020

Я храню object.pk в переменной сеанса.

Например, в шаблоне. html:

{{ request.session.myobject_pk }} <-- results in a numeric value e.g. 10
{{ myobject.pk }} <-- the same numeric value, 10

Однако, когда я вызываю эти два значения в if оператор, первичный ключ не соответствует переменной сеанса:

{% if myobject.pk == request.session.myobject_pk %} <-- results in a False 

Почему это так? Является ли объект целым числом, а переменная сеанса - строкой? Как я могу исправить это, чтобы использовать их обоих в условном выражении logi c, как это?

EDIT

Я устанавливаю переменную сеанса в представлении:

class MyView(ProcessFormView):

    def post(self, request, *args, **kwargs):
        post_myobject_pk = request.POST.get('field_name')
        ...
        // do stuff
        ...
        request.session['myobject_pk'] = post_myobject_pk 

1 Ответ

2 голосов
/ 08 января 2020

Значения в словаре POST всегда будут строками, вам нужно привести значение к int

post_myobject_pk = int(request.POST.get('field_name'))
...