我正在尝试定义在POST /创建新API对象时要执行的自定义逻辑,但我收到错误:"<Appointment: apitest>" needs to have a value for field "appointment" before this many-to-many relationship can be used
。
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
答案 0 :(得分:0)
您正在使用 Django REST Framework 2.x ,它对相关对象创建的支持非常有限。现在,您正在尝试创建一个反向关系(很可能通过外键或一对一),Django REST Framework 2.x实际上并不支持。
Django REST Framework 3.0 修复了我们以前在创建相关对象时遇到的很多问题,现在必须手动实现它。您可以在the release announcement中找到有关更改的更多信息,并确定如何在您的案例中实施这些更改。