Я использую django rest и пытаюсь обновить мою модель django измененными значениями из формы POST. Я помещаю обновляемую модель и новые данные в экземпляр сериализатора.
model_serializer = serializer.PersonSerializer(queryset, request.POST)
При выполнении model_serializer.is_valid () я получаю ошибку AttributeError: у объекта «Person» нет атрибута «_default_manager»
Я смотрел на подобные вопросы к этому.Я не нашел ничего относительно объекта модели, у которого нет _default_manager
. В этих вопросах они предлагают изменить имя метода / модели из-за конфликтов.Это не сработало для меня.
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
class PersonSerializer(serializers.ModelSerializer):
class Meta:
model = models.Person()
fields = '__all__'
url(r'^api/personview/', views.PersonView.as_view()),
class PersonView(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'rest_person_form.html'
def get(self, request):
queryset = models.Person.objects.all().last()
model_serializer = serializer.PersonSerializer(queryset)
return Response({'serializer': model_serializer, 'queryset': queryset})
def post(self, request):
queryset = models.Person.objects.all().last()
model_serializer = serializer.PersonSerializer(queryset, request.POST)
model_serializer.is_valid()
model_serializer.save()
return Response({'serializer':model_serializer})
Я ожидаю, что метод is_valid () пройдет без ошибок, чтобы позволить мне сохранить мои обновленные данные в моей модели.