Как сделать поддомены в 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 по умолчанию соответствует имени вашей функции, если не указано.

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