Как сделать поддомены в django?
Я хочу сделать панель, которая имеет два основных адреса по имени user и admin, а также каждый из адресов "user" и "admin" имеет другие адреса. например -> " site.com/panel/user/id/profile " OR " site.com/panel/admin/id/addItem " . но я не знаю, как я могу сделать эти основные адреса и адреса поддоменов :) ->
ecoverde/urls.py :
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('base.urls')),
path('panel/', include('panel.urls')),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
ecoverde/panel/urls.py ((здесь я хочу добавить два основных и другие под-урлы) :
)from .views import userPanel, Compare, saves
from django.urls import path
urlpatterns = [
#main urls that i want
path('user dashboard/<str:pk>', userPanel, name='userPanel'),
path('admin dashboard/<str:pk>', adminPanel, name='adminPanel'),
#sub urls that i want
path('compare', Compare, name='compare'),
path('saves', saves, name='saves'),
#...
]
Если вы используете представления на основе классов, внутри представления вы добавляете функцию, которая будет сопровождать ваш поддомен. Например, в представлении userPanel, если вы хотите иметь поддомен /userPanel/validate/, используя украшение djangos action from rest_framework.decorators import action
, функция может выглядеть следующим образом @action(methods=['get'], detail=False, url_path="validate") def validate(self, request): your function
url_path по умолчанию соответствует имени вашей функции, если не указано.