Единое представление для нескольких путей через URL-адреса kwargsPython

Программы на Python
Ответить
Anonymous
 Единое представление для нескольких путей через URL-адреса kwargs

Сообщение Anonymous »

Я создаю простой API, перечисляющий различные растения. В настоящее время фильтрация ограничена одним полем, таким как общее имя, вид и т. д.
Мой urls.py

Код: Выделить всё

urlpatterns = [
path('project/family=/', views.SpeciesDetail_family.as_view(), name='family'),
path('project/species=/', views.SpeciesDetail_species.as_view(), name='species')
]
И view.py

Код: Выделить всё

class SpeciesDetail_species(generics.ListAPIView):
serializer_class = SpeciesSerializer

def get_queryset(self):
queryset = Species.objects.filter()
species = self.kwargs['species']
if species is not None:
queryset = queryset.filter(species__iexact=species)
return queryset

class SpeciesDetail_family(generics.ListAPIView):
serializer_class = SpeciesSerializer

def get_queryset(self):
queryset = Species.objects.all()
family = self.kwargs['family']
if family is not None:
queryset = queryset.filter(family__iexact=family)
return queryset
Как создать одно представление для этих двух путей? Итак, мне просто нужно параметризовать поле поиска (может быть семейством, видом и т. д.) по URL-адресу, например /project/species=PlantSpecies/ или /project/family=PlantFamily/.
Если я добавлю кварги в путь, например path('project/family=/',views.SpeciesDetail_family.as_view(), {'lu_field':'family'}, name='family'), как я могу получить доступ к lu_field в представлениях?

Подробнее здесь: https://stackoverflow.com/questions/792 ... url-kwargs
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»