Django ViewSet dreate错误:“模型”需要为字段“字段”设置一个值,然后才能使用此多对多关系
我试图定义在发布/创建新API对象时要执行的自定义逻辑,但我收到错误:在使用此多对多关系之前,需要为field appointment设置一个值 您使用的是Django REST Framework 2.x,它对相关对象创建的支持非常有限。现在,您正试图通过外键或一对一创建反向关系,Django REST Framework 2.x实际上不支持这种关系Django ViewSet dreate错误:“模型”需要为字段“字段”设置一个值,然后才能使用此多对多关系,django,django-rest-framework,Django,Django Rest Framework,我试图定义在发布/创建新API对象时要执行的自定义逻辑,但我收到错误:在使用此多对多关系之前,需要为field appointment设置一个值 您使用的是Django REST Framework 2.x,它对相关对象创建的支持非常有限。现在,您正试图通过外键或一对一创建反向关系,Django REST Framework 2.x实际上不支持这种关系 Django REST Framework 3.0修复了我们以前在相关对象创建中遇到的许多问题,现在它必须手动实现。您可以在中找到有关更改的更多
Django REST Framework 3.0修复了我们以前在相关对象创建中遇到的许多问题,现在它必须手动实现。您可以在中找到有关更改的更多信息,并确定在您的案例中必须如何实施更改。Hi!我注意到您正在使用Django REST Framework 2.x。DRF 3已经出了一点,并且修复了相当多的bug,您可能需要考虑升级。
class AppointmentViewSet(viewsets.ModelViewSet):
queryset = Appointment.objects.all()
serializer_class = AppointmentSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,
IsOwnerOrReadOnly,)
def create(self, request):
serializer = AppointmentSerializer(data=request.DATA)
return Response(serializer.errors,
status=status.HTTP_400_BAD_REQUEST)
def pre_save(self, obj):
obj.service_recipient = self.request.user