Как использовать переменную там, где ожидается ключевое слово
У меня есть эта проблема с Django, но я чувствую, что это больше вопрос по python:
user_data = User.objects.filter(userid__startswith='Jeremy').values('mail','address')
Вышеописанное работает и возвращает мне ровно одну строку, как я знаю, что это должно быть. Это не работает:
jeremy='Jeremy'
user_data = User.objects.filter(userid__startswith=jeremy).values('mail','address')
потому что при попытке использовать manage.py runserver жалуется, что мой queryset пуст.
Я облазил весь интернет и нашел бесчисленное множество вариантов использования словаря, например, такой:
my_kws={'userid__startswith':'Jeremy'}
user_data = User.objects.filter(**mykws).values('mail','address')
, которые действительно работают, но при изменении на:
jeremy='Jeremy'
my_kws={'userid__startswith':jeremy}
user_data = User.objects.filter(**mykws).values('mail','address')
абсолютно не работают. По крайней мере, для меня они заканчиваются точно так же, как и раньше, с пустым querySet. В других бесчисленных ответах предлагается сделать так:
jeremy='Jeremy'
user_data = User.objects.filter(f'userid__startswith={jeremy}').values('mail','address')
с точно таким же результатом, как и раньше. К сведению, я использую python 3.10.12