Проблема с переменной пути в url в Django v3

Я долго ломал голову над этим вопросом. Мне кажется, что ответ прямо передо мной, но я не могу его увидеть. Я использую django 3 и у меня есть url, который возвращает ошибку.

Мои урлы...

url(r'^(?P<path>.*)$', views.GraphanaProxyView.as_view(), name='grafanadash'),

Мое мнение...

class GraphanaProxyView(ProxyView):
upstream = '{{ip.port}}'

def get_proxy_request_headers(self, request):
   headers = super(GraphanaProxyView, self).get_proxy_request_headers(request)
   headers['X-WEBAUTH-USER'] = request.user.username
   return headers

Я вызываю url из iframe....

<iframe src ="{% url 'grafanadash' %}" width="100%" height="1200px" frameborder="0"></iframe>

Но я получаю следующую ошибку...

NoReverseMatch at /testsite/mt/mtgrafana/
Reverse for 'grafanadash' with no arguments not found. 1 pattern(s) tried: ['testsite\\/mt\\/(?P<path>.*)$']

Я знаю, что технически часть "path" ни на что не указывает, но представление ожидает переменную "path" для использования. Если я просто ввожу адрес в строке "/testsite/mt/grafanadash", он проходит через представление и работает. Если я пытаюсь сделать рендеринг внутри фрейма или просто вызвать его через ссылку, то получаю ошибку. Любая помощь будет принята с благодарностью.

Святая корова! Я только что понял это сразу после того, как опубликовал вопрос. Ответ находится в iframe или url запросе. Просто нужен был заполнитель для переменной "path".

<iframe src ="{% url 'grafanadash' 'path' %}" width="100%" height="1200px" frameborder="0"></iframe>

В ретроспективе это кажется очевидным. Надеюсь, это будет полезно кому-то еще.

Вернуться на верх