QuerySet выбрасывает ошибку при вызове mode_to_dict
Получаем нижеприведенную ошибку при вызове API из Postman. Это проблема моделей?
Ошибка
**
Models.py
class Candidate(models.Model):
Name = models.CharField(max_length=255, blank=True, null=True)
Email = models.CharField(max_length=255, blank=True, null=True)
candidateid = models.CharField(max_length=255, blank=True, null=True)
Account = models.ForeignKey(Account,blank=True, null=True,on_delete=models.SET_NULL)
phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.")
PrimaryPhone = models.CharField(validators=[phone_regex], max_length=17, blank=True,null=True) # validators should be a list
SecondaryPhone = models.CharField(validators=[phone_regex], max_length=17, blank=True,null=True) # validators should be a list
# def __str__(self):
# return self.Name
Views.py
from django.shortcuts import render
from django.http import HttpResponse
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated
from candidates import models
from django.forms import model_to_dict
from django.http import JsonResponse
class CandidateSummary(APIView):
permission_classes = (IsAuthenticated,)
def get(self, request):
try:
candidatesobj = models.CustomFields.objects.filter(id=1)
candidatesobj = model_to_dict(candidatesobj)
return Response({"Status":"Success","candidates":candidatesobj})
except Exception as e:
print(e)
Тот же код работает в других приложениях, однако проблема, похоже, связана с этим приложением.
Простите, но я добавлю немного случайного текста, sf не позволяет разместить вопрос без дополнительного текста.
Эффективная оценка поставщиков
Эти показатели отражаются в финансовом плане. Это начинается с определения фактических транспортных расходов по сравнению с бюджетом. Однако финансовый анализ можно проводить гораздо глубже, рассматривая годовые расходы на каждую полосу движения, процент транспортных расходов, приходящийся на топливные надбавки или ежегодные комиссионные сборы перевозчика
Попробуйте .get() или .first(), потому что .filter() возвращает объект queryset, который является своего рода списком объектов. Но model_to_dict() работает только с одним объектом (экземпляром). Используйте либо этот вариант,
candidatesobj = models.CustomFields.objects.filter(id=1).first()
candidatesobj = model_to_dict(candidatesobj)
или, вот этот.
candidatesobj = models.CustomFields.objects.get(id=1)
candidatesobj = model_to_dict(candidatesobj)