Hen*_*y H 6 python django serialization django-rest-framework
我一直在努力解决这个问题。
我不确定我错过了什么。
如果您有任何建议,请告诉我.. !!
模型.py:
co_manager = models.ManyToManyField(BookRunner, blank=True, null=True, related_name="deal_co_manager")
Run Code Online (Sandbox Code Playgroud)
视图.py:
class DealAdminViewSet(viewsets.ModelViewSet):
queryset = Deal.objects.all()
serializer_class = CreateDealSerializer
def create(self, request, format=None):
data = ...all things data here.
serializer = CreateDealSerializer(data=deal)
print serializer
co_manager_array = []
if serializer.is_valid():
serializer.save()
return Response(status=status.HTTP_201_CREATED)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Run Code Online (Sandbox Code Playgroud)
序列化程序.py:
class CreateDealSerializer(serializers.Serializer):
co_manager = serializers.PrimaryKeyRelatedField(allow_null=True, many=True, queryset=BookRunner.objects.all(), required=False)
Run Code Online (Sandbox Code Playgroud)
我建议编辑你的观点,更像这样,
class DealAdminViewSet(viewsets.ModelViewSet):
queryset = Deal.objects.all()
serializer_class = CreateDealSerializer
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Run Code Online (Sandbox Code Playgroud)
如果不展示您的模型,任何人可以提供的帮助都非常有限。如果有什么情况请告诉我。
另外,你的序列化器,
class CreateDealSerializer(serializers.Serializer):
co_manager = serializers.PrimaryKeyRelatedField(allow_null=True, many=True, queryset=BookRunner.objects.all())
Run Code Online (Sandbox Code Playgroud)
触发错误是因为在您的模型中该字段co_manager未定义为null=True。如果你想将上面的字段保存为null,然后在你的 models.py 中进行更改,
co_manager = models.ForeignKey(Target_table_name, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
当存储空值时,不会引发错误。
| 归档时间: |
|
| 查看次数: |
6366 次 |
| 最近记录: |