Я повторно использую код, который уже использовал в предыдущем проекте, и не знаю, почему он сейчас не работает?
Я определяю свои модели сайта с помощью SafeDeleteModels и пытаюсь вернуть список сайтов с промежуточное программное обеспечение и получить ошибку Object of type SafeDeleteQueryset is not JSON serializable
, если я использую serializers.serialize, у меня нет ошибки
models.py
from safedelete.models import SafeDeleteModel, SOFT_DELETE, SOFT_DELETE_CASCADE
class Site(SafeDeleteModel):
""" A class to create a site instance.
A site can be a a follow-up site (i.e. Site), a national coordination center (i.e. National) or a
monotoring and management center (i.e. International).
"""
_safedelete_policy = SOFT_DELETE_CASCADE
sit_ide = models.AutoField("Code number", primary_key = True)
reg = models.ForeignKey(Region, on_delete = models.CASCADE) # related region
sit_typ = models.CharField("Type", max_length = 15)
sit_nom_eng = models.CharField("Nom", max_length = 100)
sit_nom_fra = models.CharField("Nom", max_length = 100)
sit_abr = models.CharField("Code lettre", max_length = 3)
log = HistoricalRecords()
class Meta:
db_table = 'adm_sit'
verbose_name_plural = 'Sites'
ordering = ['sit_nom_fra', 'sit_ide']
middleware.py
from django.conf import settings
from django.http import HttpResponseRedirect
from django.core import serializers
from django.contrib import auth
from django.contrib.auth.models import User
from parameters.models import Profile, Pays, Region, Site
from django.db.models import Q
from datetime import datetime, timedelta
def initialisation(get_response):
def middleware(request):
response = get_response(request)
if request.user.is_authenticated:
user_site = Site.objects.get(profile__user = request.user.id)
request.session['language'] = request.headers['Accept-Language'][:2]
request.session['user_site_type'] = user_site.sit_typ
request.session['user_pays'] = user_site.reg.pay.pay_ide
request.session['user_site'] = user_site.sit_abr
# liste des sites accessibles à l'utilisateur connecté
if user_site.sit_typ == 'International':
request.session['user_authorized_sites'] = Site.objects.all()
# request.session['user_authorized_sites'] = serializers.serialize('json',Site.objects.all(),fields=('sit_ide', 'sit_typ', 'sit_nom_eng', 'sit_nom_fra', 'sit_abr'))