Чтение после записи не включает записанные данные
У меня есть простой клиент React и сервер Django для списка todo. При создании элемента TODO отправляется POST-запрос с его данными, а после получения ответа отправляется GET-запрос для получения любых обновлений списка. Однако GET обычно не содержит только что созданного элемента.
Я могу добавить записанный элемент в этот список со стороны клиента, но мне интересно, есть ли способ настроить серверную сторону так, чтобы запрос содержал обновления запросов, на которые ответили до него.
Для справки вот MVP стороны Django. Клиент просто использует fetch
. Я получил тот же результат, используя Sqlite и Postgres
models.py
class BaseModel(models.Model):
objects = models.Manager()
class Meta:
abstract = True
from django.db import models
class Todo(BaseModel):
name = models.TextField()
views.py
import json
from django.http import JsonResponse
from django.views.decorators.http import require_POST, require_GET
from django.views.decorators.csrf import csrf_exempt
from django.forms.models import model_to_dict
from .models import Todo
@require_POST
@csrf_exempt
def todo_add(request):
data = json.loads(request.body)
name = data.get('name')
new_todo = Todo(name=name)
new_todo.save()
return JsonResponse({'new_todo': model_to_dict(new_todo, fields=['id', 'name']})
@require_GET
@csrf_exempt
def todo_list(request):
results = Todo.objects.all().values('id', 'name')
return JsonResponse({'todo_list', list(results)})