def get_object(self):
"""
Primary key lookup if pk numeric, otherwise use custom filter kwargs.
This allows us to also support build 37 lookup by chromosome, position,
reference and variant.
"""
if self.kwargs['pk'].isdigit():
return super(VariantViewSet, self).get_object()
queryset = self.filter_queryset(self.get_queryset())
filter_kwargs = self._custom_variant_filter_kwargs(self.kwargs['pk'])
if not filter_kwargs:
raise Http404('No {} matches the given query.'.format(
queryset.model._meta.object_name))
obj = get_object_or_404(queryset, **filter_kwargs)
self.check_object_permissions(self.request, obj)
return obj
评论列表
文章目录