【发布时间】:2019-05-29 10:39:49
【问题描述】:
我正在使用 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() 方法能够顺利通过,以允许我将更新的详细信息保存到我的模型中。
【问题讨论】:
标签: django django-models django-rest-framework serialization