我正在使用 django rest,我正在尝试使用表单 POST 中更改的值更新我的 django 模型。我将要更新的模型和新数据放在序列化程序实例中。
model_serializer = serializer.PersonSerializer(queryset, request.POST)
执行 model_serializer.is_valid() 时出现错误 AttributeError: 'Person' object has no attribute '_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() 方法能够无错误地通过,以便我将更新的详细信息保存到我的模型中。
属性model
正在等待一个类,而不是一个实例。
class PersonSerializer(serializers.ModelSerializer):
class Meta:
model = models.Person # No () at the end
fields = '__all__'
提示:如果您不使用 return from is_valid()
,您可以使用is_valid(raise_exception=True)
自动引发错误 400。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句