DRF NoReverseMatch
Я могу создать и сохранить голосование с помощью postman, но при запуске unittest с функциональностью с помощью reverse, он не может найти URL. Я пробовал комбинацию запуска с и без args/kwargs, и, похоже, ничего не работает. Это также соответствует документации
views.py
class EntryViewSet(viewsets.ModelViewSet):
@action(detail=True, methods=['post'], permission_classes=[IsAuthenticated])
def vote(self, request, *arg, **kwargs):
...
tests.py
def test_vote_entry_success(self):
self.authenticate_client(self.other_user_data)
response = self.client.post(reverse('api:entries-vote'), kwargs={'slug': self.entry.slug})
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
сообщение об ошибке
django.urls.exceptions.NoReverseMatch: Reverse for 'entries-vote' with no arguments
not found. 2 pattern(s) tried: ['api/entries/(?P<slug>[^/.]+)/vote\\.(?P<format>[a-
z0-9]+)/?$', 'api/entries/(?P<slug>[^/.]+)/vote/$']
Я использовал django-entensions, чтобы посмотреть отображение URL, и действие отображается как действительный маршрут
/api/entries/<slug>/vote/ api.views.EntryViewSet api:entries-vote
И тест работает, когда я жестко кодирую URL
response = self.client.post('/api/entries/'+self.entry.slug+'/vote/')