【发布时间】:2017-11-16 01:21:35
【问题描述】:
您好,我有一个类似的模型:
class Appointment(models.Model):
hospital = models.ForeignKey(Hospital, on_delete=models.CASCADE)
patient = models.ForeignKey(Patient, on_delete=models.CASCADE)
我的视图如下:
class AppointmentViewSet(viewsets.ModelViewSet):
queryset = Appointment.objects.all()
serializer_class = AppointmentSerializer
在我的网址中:
router.register(r'appointments', AppointmentViewSet)
现在我想按一些患者 ID 过滤预约列表。此 id 应由请求者通过 url 提供。我正在考虑使用 kwargs 来捕捉它。但我不知道该怎么做。我知道我必须重写 list 方法。
def list(self, request, *args, **kwargs):
# what do I write here? so that the queryset would be filtered by patient id sent through the url?
如何自定义 url 和/或 view 以适应患者 ID 参数?我只想修改列表请求,所有其他操作(创建、详细信息、销毁)应由模型视图集的默认行为处理。
谢谢。
【问题讨论】:
-
提供id后,需要实例还是列表?
-
一个列表。约会清单。
-
你是从 url 传递 id 的,对吧?
标签: python django url keyword-argument django-rest-viewsets