Обновление определенного столбца таблицы mysql с помощью представлений django
У меня есть таблица mysql с колонками id, username и token, где id и username уже заданы, но token меняется каждый раз. Как обновить его с помощью django views.py Я указываю имя пользователя для идентификации, но это добавляет новую строку в таблицу.
Сначала получите object с primary key из вашей Subscriber модели и обновите token с вашим новым значением как
from django.shortcuts import get_object_or_404
def hello(request, id): #<---- here i assumed you passed your id as url parameters
data = json.loads(request.body)
s= get_object_or_404(Subscriber, pk=id)
s.username = data["username"] #<--- if required add otherwise for updating token this will not required
s.token = data["token"]
s.save()
print(data)
return JsonResponse({"status": "success"})
Я указываю имя пользователя для идентификации
Для получения updating одиночных данных всегда старайтесь получать данные с помощью поля unique, иначе вы можете получить duplicate данные, которые будет трудно обработать. Поэтому здесь я использовал id для получения данных. Вы можете просто передать id в качестве url параметра и получить данные в соответствии с предоставленными id. Вы можете использовать username также, если это unique для получения данных, но если у вас более одного username с одинаковым значением, то это приведет к выбросу exception. Если вы хотите получить данные с помощью username, то просто замените pk=id на username=data['username'] и не нужно передавать id в качестве параметра url, тогда все будет работать.