【发布时间】:2022-01-25 20:11:33
【问题描述】:
在 Django REST Framework POST 视图中,如果 OneToOneField 关系已经存在,有什么方法可以避免 HTTP 500?
相反,获得 HTTP 400 会很棒。
models.py
class Club(TimeStampModel):
owner = models.OneToOneField(User, on_delete=models.PROTECT)
name = models.CharField(max_length=255, unique=True)
serializers.py
class ClubSerializer(serializers.ModelSerializer):
class Meta:
model = Club
fields = '__all__'
read_only_fields = ['owner', 'active']
views.py
class ClubRegistrationView(generics.CreateAPIView):
queryset = Club.objects.all()
serializer_class = ClubSerializer
permission_classes = [IsAuthenticated]
def perform_create(self, serializer):
serializer.save(owner=self.request.user)
谢谢。
【问题讨论】:
-
请分享您的模型、序列化程序和视图\视图集的代码
-
好的,问题更新了!
标签: django django-rest-framework