【发布时间】:2021-06-18 12:42:04
【问题描述】:
我的模型中有方法可以在 API 中调用。
型号:
class Booking(models.Model):
PENDING = 'PN'
ACCEPTED = 'AC'
DENIED = 'DN'
BOOKING_STATUS_CHOICES = [
(PENDING, 'Pending'),
(ACCEPTED, 'Accepted'),
(DENIED, 'Denied')
]
createdDate = models.DateTimeField(auto_now_add=True)
comments = models.CharField(max_length=120)
location = models.TextField()
date = models.DateTimeField()
operator = models.ForeignKey("Business", on_delete=models.CASCADE)
status = models.CharField(max_length=2, choices=BOOKING_STATUS_CHOICES,default=PENDING)
def __str__(self):
return self.comments
def acceptBooking(self):
self.status = self.ACCEPTED
def denyBooking(self):
self.status = self.DENIED
序列化器:
class BookingSerializer(serializers.ModelSerializer):
class Meta:
model = Booking
fields = ('createdDate', 'comments', 'location', 'date', 'operator', 'status')
观看次数:
class BookingView(viewsets.ModelViewSet):
serializer_class = BookingSerializer
queryset = Booking.objects.all()
filter_backends = [filters.SearchFilter]
search_fields = ['createdDate', 'comments', 'location', 'date', 'operator']
我想调用acceptBooking 或denyBooking。实现这一目标的最佳做法是什么?
谢谢!
【问题讨论】:
标签: python django django-models django-rest-framework django-views