如何在 Django 休息框架中发送摄影师 ID

how to send photographer id in django rest framework

我如何在 django rest 框架中发送摄影师 ID。与 post 请求。当前用户已完美发送,但我想发送摄影师 ID。 请帮我解决这个问题

这是我的代码。

models.py

class Booking(models.Model):
    user = models.ForeignKey(User,on_delete=models.CASCADE, null=True)
    photographer = models.ForeignKey(photographer,on_delete=models.CASCADE,null=True, 
    related_name="photographer_set")
    address = models.CharField(max_length=100, null=True)
    near_by = models.CharField(max_length=100, null=True)
    phone_number = models.BigIntegerField(null=True)
    status = models.BooleanField(default=False)
    date = models.DateField(default=datetime.date.today()
    
    @staticmethod
    def get_booking_by_customer(user_id):
        return Booking.objects.filter(user=user_id).order_by('_date')

serializer.py

class bookingserializer(serializers.ModelSerializer):
    #photographer_set = photographerSerializer()
    #user = serializers.PrimaryKeyRelatedField(read_only=True, default=serializers.CurrentUserDefault())
    class Meta:
        model = Booking
        fields = ['id', 'address','near_by','phone_number','date',"photographer",'user','status']
        depth = 1

views.py


    class bookings(generics.GenericAPIView):
        permission_classes = (permissions.IsAuthenticated,)
        serializer_class = bookingserializer
        @csrf_exempt
        def post(self, request):
            booking = request.data
            serializer = self.serializer_class(data=booking)
            #booking.status=True
            self.request.data.get('photographer_id')
            serializer.is_valid(raise_exception=True)
            serializer.save(user=self.request.user)
            return Response(status=status.HTTP_201_CREATED)

您可以从前端传入 'photographer_id' 请求正文。

然后在你的view.py中,你可以用self.request.data.get('photographer_id')获取数据。

如果您使用的是 POSTMAN:

尝试以下:

class bookings(generics.GenericAPIView):
    permission_classes = (permissions.IsAuthenticated,)
    serializer_class = bookingserializer
    @csrf_exempt
    def post(self, request):
        booking = request.data
        serializer = self.serializer_class(data=booking)
        #booking.status=True
        photographer_id = self.request.data.get('photographer_id')
        serializer.is_valid(raise_exception=True)
        serializer.save(user=self.request.user, photographer=photographer_id)
        return Response(status=status.HTTP_201_CREATED)