Поиск модели с использованием Django Rest api возвращает нулевое множество - PullRequest
0 голосов
/ 06 апреля 2019

Я сделал простую модель, которую я хочу запросить, используя Django rest API. Я сделал это API, кажется, он-лайн, но не работает. Я новичок в Django и, похоже, не могу найти ошибку. Любая помощьбудет принята с благодарностью!

# models.py

class TagsDB(models.Model):  # tags database links tags with each upload
    tag = models.CharField(max_length=10)
    title = models.ManyToManyField(Uploads)
    def __str__(self):
        return self.tag

# serializers.py

class TagsDBSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = TagsDB
        fields = ('url', 'tag', 'upload_title')

# views.py

class TagsList(generics.ListAPIView):
    serializer_class = TagsDBSerializer

    def get_queryset(self):

        tag = self.kwargs['tag']
        return TagsDB.objects.filter(tag=tag)

# urls.py

urlpatterns=[
   url('^tags/(?P<tag>.+)/$', TagsList.as_view()),
]

Я получаю представление API, но когда я запускаю поиск по URL http://localhost:8000/tags/tag=javaкоторый должен искать в БД тег с именем java, хотя такой объект существует, я получаю пустой набор

emptysetshown

1 Ответ

0 голосов
/ 06 апреля 2019
  1. URL должен быть /tags/?tag=java, а не /tags/tag=java

  2. Тег не в kwargs, но в query_params для request.Так что вы должны сделать.

    tag = self.request.query_params.get('tag')

вместо tag = self.kwargs['tag']

...