Я хотел бы выполнить однострочный запрос на обновление (с использованием Python и Postgres), который увеличивает значение на 1. Какой самый эффективный способ сделать это? Я думал, что в идеале это будет выглядетьвот так (в моем файле Django Views.py):
def login_user(request):
UserProfile.objects.filter(username=username).update(logins += 1)
НО из-за '+ =', этот код дает мне SyntaxError: invalid syntax
- что странно, потому что я думал, что + = был законным питоном( см. Здесь ).Конечно, есть более эффективный способ увеличить значение в postgres, чем этот (который работает):
def login_user(request):
thing = UserProfile.objects.filter(username=username).values("logins") # gets the initial value
total_logins = int(thing[0]['logins'])+1 # adds 1 to that value
UserProfile.objects.filter(username=username).update(logins = total_logins) # Updates the value in the database
Я нашел аналогичные решения для StackOverflow, но их ответы дали SQL-запросы вместо запросов Python. - Заранее спасибо!