Я создал конечную точку API DRF, чтобы иметь возможность собирать некоторые данные в мою базу данных и показывать их на моей странице Django с помощью Jquery.
Мои примеры данных выглядят так:
{
"item": "Someitem",
"Price": 120,
"Status": "Free"
},
{
"item": "SecondItem,
"Price": 90,
"Status": "Taken"
},
Так что, если я получу конечную точку из JQuery по этой ссылке: http://127.0.0.1:8000/tst/
, я получу все записи и покажу их все на моей веб-странице. Но что, если, например, я хочу получить только только записей, чье поле Status
установлено на Taken
? Есть ли способ отредактировать запрос DRF, чтобы он указывал на http://127.0.0.1:8000/tst/Taken
? Или вместо этого, если пользователь хочет получить все остальные со статусом, установленным на Free
, он будет указывать на http://127.0.0.1:8000/tst/Free
? Я знаю, что мог бы сделать это с помощью jquery, но на самом деле я хотел бы сделать это на стороне сервера.
Я пытался с этим:
queryset = tst.objects.filter(Status="Taken")
Но проблема здесь в том, что это будетвсегда берут только Taken
записей из моей БД. В моем случае я хочу найти способ извлекать Taken
иногда и Free
иногда из шаблона.
Я довольно новичок в DRF, поэтому мои настройки довольно просты:
views.py
class tstList(generics.ListCreateAPIView):
queryset = tst.objects.all()
serializer_class = tstSerializer
class tstDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = tst.objects.all()
serializer_class = tstSerializer
url.py
path('tst/', views.tstList.as_view()),
path('tst/<int:pk>/', views.tstDetail.as_view()),
models.py
class tst(models.Model):
item = models.CharField()
Price = models.FloatField()
Status = models.CharField()
def save(self, *args, using=None, **kwargs):
super(tst, self).save(*args, **kwargs)