Django URL в шаблонах с помощью Apache ProxyPass
У меня есть проект Django, расположенный за сервером ProxyPass в Apache.
В проекте есть приложение под названием 'home', с таким шаблоном url: urls.py
urlpatterns = [
path('', views.HomeView.as_view(), name='index'),
path('projects', views.HomeView.as_view(), name='dashboard'),
path('projects/<int:pid>/members',
views.ProjectMembersView.as_view(), name='project.members'),
Есть два URL, которые имеют одинаковый класс View (первый используется для корня).
В классе HomeView используется шаблон под названием 'dashboard.html' и получаем список проектов для отправки в шаблон view
class HomeView(LoginRequiredMixin, ListView):
template_name = 'home/dashboard.html'
context_object_name = 'projects'
login_url = 'accounts.login'
def get_queryset(self):
... # returns a list of projects
Шаблон отображает табличку с некоторой информацией о проекте и URL-адресом для просмотра сотрудников, работающих над проектом шаблон
<td class="align-middle text-center text-sm">
<a href="{% url 'project.members' pid=project.id %}">See employees</a>
</td>
В случае, проект за Apache ProxyServer, URL сгенерированный в шаблоне имеет вид: "https://example.com/4554/members", здесь Django не распознает URL
Другая ситуация, без Apache Proxypass генерируемый URL выглядит следующим образом: "http://127.0.0.1:8000/projects/4554/members", Django может распознать URL и вернуть шаблон при нажатии на ссылку.
Конфигурация ProxyPass в Apache находится в файле: "/etc/apache2/sites-enabled/the-projects.conf". proxypass
<VirtualHost *:80>
ServerName example.com
ErrorLog /var/log/apache2/projects_perror.log
CustomLog /var/log/apache2/projects_access.log combined
RequestHeader set X-Forwarded-Proto 'https' env=HTTPS
ProxyPass /projects http://127.0.0.1:8000
ProxyPassReverse /projects http://127.0.0.1:8000
Alias /static/ /home/me/developer/projects/static/
<Directory "/home/me/developer/projects/static/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
Чего мне не хватает для отображения правильного URL в шаблоне при использовании Apache ProxyPass