235 lines
20 KiB
Python
235 lines
20 KiB
Python
from django.conf import settings
|
|
from django.urls import path, include, re_path
|
|
from django.contrib import admin
|
|
from django.views.static import serve as static_serve
|
|
from rest_framework_simplejwt.views import (
|
|
TokenObtainPairView,
|
|
TokenRefreshView,
|
|
)
|
|
from gvsds.apps.core.views import SubdomainView
|
|
from gvsds.apps.ugm import views as ugm_views
|
|
from gvsds.apps.gerp import views as gerp_views
|
|
from gvsds.apps.gerp.views.settings_api import SettingsAPIView
|
|
from gvsds.apps.crb import views as crb_views
|
|
from gvsds.apps.sve import views as sve_views
|
|
from gvsds.apps.invite import views as invite_views
|
|
from gvsds.apps.mc import views as mc_views
|
|
from gvsds.apps.api import views as api_views
|
|
|
|
urlpatterns = [
|
|
path('admin/', admin.site.urls),
|
|
path('api/auth/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
|
|
path('api/auth/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
|
|
path('api/gerp/', include('gvsds.apps.gerp.urls')),
|
|
path('api/ugm/', include('gvsds.apps.ugm.urls')),
|
|
path('api/crb/', include('gvsds.apps.crb.urls')),
|
|
path('api/invite/', include('gvsds.apps.invite.urls')),
|
|
path('api/ccgo/', include('gvsds.apps.ccgo.urls')),
|
|
path('api/sve/', include('gvsds.apps.sve.urls')),
|
|
path('api/t4/', include('gvsds.apps.t4.urls')),
|
|
path('api/doc/', include('gvsds.apps.doc.urls')),
|
|
path('api/', include('gvsds.apps.api.urls')),
|
|
path('api/msync/', include('gvsds.apps.msync.urls')),
|
|
path('api/payment/', include('gvsds.apps.payment.urls')),
|
|
path('api/commission/', include('gvsds.apps.commission.urls')),
|
|
path('api/stats/', include('gvsds.apps.stats.urls')),
|
|
|
|
path('Auth/Login', ugm_views.LoginView.as_view(), name='auth_login'),
|
|
path('Auth/Register', ugm_views.RegisterView.as_view(), name='auth_register'),
|
|
path('Auth/Verify2FA', ugm_views.Verify2FAView.as_view(), name='auth_verify2fa'),
|
|
path('Auth/DeleteAllCookies', ugm_views.LogoutView.as_view(), name='auth_logout'),
|
|
path('Auth/RefreshToken', ugm_views.CookieTokenRefreshView.as_view(), name='auth_refresh'),
|
|
path('Auth/GetUserRoles', ugm_views.GetUserRolesView.as_view(), name='auth_user_roles'),
|
|
path('Auth/SwitchRole', ugm_views.SwitchRoleView.as_view(), name='auth_switch_role'),
|
|
path('Query/GetELTUserAvatar', ugm_views.GetUserAvatarView.as_view(), name='query_avatar'),
|
|
path('Query/GetArgsUserAvatar', ugm_views.GetArgsUserAvatarView.as_view(), name='query_avatar_by_uuid'),
|
|
path('Query/GetELTUserInfo', ugm_views.GetUserInfoView.as_view(), name='query_user_info'),
|
|
path('Query/GetELTUserName', ugm_views.GetUserNameView.as_view(), name='query_user_name'),
|
|
path('Modify/ModifyELTUserPassWord', ugm_views.ModifyPasswordView.as_view(), name='modify_password'),
|
|
path('Modify/ModifyELTUserAvatar', ugm_views.ModifyAvatarView.as_view(), name='modify_avatar'),
|
|
|
|
path('API/User/ModifyPersonalConfig', gerp_views.ModifyPersonalConfigView.as_view(), name='gerp_modify_config'),
|
|
path('API/User/UserCenterCard', gerp_views.UserCenterCardView.as_view(), name='gerp_center_card'),
|
|
path('API/User/RequestPersonalConfig', gerp_views.UserConfigView.as_view(), name='gerp_config'),
|
|
path('API/User/UserTIdCard', gerp_views.UserIdCardView.as_view(), name='gerp_idcard'),
|
|
path('API/User/ModifyPassword', gerp_views.ModifyPasswordView.as_view(), name='gerp_modify_password'),
|
|
path('API/User/UserInformation', gerp_views.UserInformationView.as_view(), name='gerp_information'),
|
|
|
|
path('API/MenuList', gerp_views.MenuListCompatView.as_view(), name='menu_list'),
|
|
path('API/Menu/AdminList', gerp_views.MenuAdminListView.as_view(), name='menu_admin_list'),
|
|
path('API/Menu/Save', gerp_views.MenuSaveView.as_view(), name='menu_save'),
|
|
path('API/Menu/Delete', gerp_views.MenuDeleteView.as_view(), name='menu_delete'),
|
|
path('API/Settings', SettingsAPIView.as_view(), name='user_settings'),
|
|
path('API/Message', gerp_views.MessageCompatView.as_view(), name='message'),
|
|
path('API/Finance/Show', gerp_views.CashReceiptsPaymentsLedgerViewSet.as_view({'get': 'show', 'post': 'show'}), name='finance_show'),
|
|
path('API/UserManager/MemberCard', gerp_views.MemberCardView.as_view(), name='member_card'),
|
|
|
|
path('API/Asset/List', gerp_views.FileAssetViewSet.as_view({'get': 'list'}), name='asset_list'),
|
|
path('API/Asset/Upload', gerp_views.AssetUploadInitView.as_view(), name='asset_upload'),
|
|
path('API/Asset/UploadChunk', gerp_views.AssetUploadChunkView.as_view(), name='asset_upload_chunk'),
|
|
path('API/Asset/UploadComplete', gerp_views.AssetUploadCompleteView.as_view(), name='asset_upload_complete'),
|
|
path('API/Asset/UploadInit', gerp_views.AssetUploadInitView.as_view(), name='asset_upload_init'),
|
|
path('API/Asset/Delete/<sha1>', gerp_views.FileAssetViewSet.as_view({'delete': 'destroy'}), name='asset_delete'),
|
|
path('API/Asset/Download/<sha1>', api_views.AssetDownloadView.as_view(), name='asset_download'),
|
|
path('API/Asset/RefLink/<sha1>', gerp_views.AssetRefLinkView.as_view(), name='asset_reflink'),
|
|
|
|
path('API/TwoFactorAuthentication/Setup', gerp_views.TwoFASetupView.as_view(), name='2fa_setup'),
|
|
path('API/TwoFactorAuthentication/QR', gerp_views.TwoFAQrView.as_view(), name='2fa_qr'),
|
|
path('API/TwoFactorAuthentication/Status', gerp_views.TwoFAStatusView.as_view(), name='2fa_status'),
|
|
path('API/TwoFactorAuthentication/Disable', gerp_views.TwoFADisableView.as_view(), name='2fa_disable'),
|
|
|
|
path('API/AccountActivation/ActivateAccount', gerp_views.AccountActivationVerifyView.as_view(), name='account_activate'),
|
|
path('API/AccountActivation/SendAccountActivationCode', gerp_views.AccountActivationSendView.as_view(), name='account_send_code'),
|
|
path('API/AccountActivation/MyEmail', gerp_views.MyEmailView.as_view(), name='account_my_email'),
|
|
path('API/AccountActivation/ChangeEmail', gerp_views.ChangeEmailView.as_view(), name='account_change_email'),
|
|
|
|
path('API/WorkOrder/List', gerp_views.WorkOrderViewSet.as_view({'get': 'list'}), name='workorder_list'),
|
|
path('API/WorkOrder/MyOrders', gerp_views.WorkOrderViewSet.as_view({'get': 'my_orders'}), name='workorder_my'),
|
|
path('API/WorkOrder/Create', gerp_views.WorkOrderViewSet.as_view({'post': 'create_order'}), name='workorder_create'),
|
|
path('API/WorkOrder/Get/<order_uuid>', gerp_views.WorkOrderViewSet.as_view({'get': 'retrieve'}), name='workorder_get'),
|
|
path('API/WorkOrder/Update/<order_uuid>', gerp_views.WorkOrderViewSet.as_view({'put': 'update_order', 'patch': 'update_order'}), name='workorder_update'),
|
|
path('API/WorkOrder/Delete/<order_uuid>', gerp_views.WorkOrderViewSet.as_view({'delete': 'destroy'}), name='workorder_delete'),
|
|
|
|
path('API/Backpack/GetBackpackItems', gerp_views.BackpackViewSet.as_view({'get': 'my_items'}), name='backpack_get'),
|
|
path('API/Backpack/DiscardItem', gerp_views.BackpackViewSet.as_view({'post': 'discard_item'}), name='backpack_discard'),
|
|
|
|
path('API/Department/GetDepartments', gerp_views.DepartmentViewSet.as_view({'get': 'list'}), name='dept_list'),
|
|
path('API/Department/SetPersonInCharge', gerp_views.DepartmentViewSet.as_view({'post': 'set_person_in_charge'}), name='dept_set_charge'),
|
|
|
|
path('API/SiteUserManagement/GetSiteUsers', gerp_views.SiteUserManagementView.as_view(), name='site_users'),
|
|
path('API/SiteUserManagement/ResetPassword', gerp_views.SiteUserResetPasswordView.as_view(), name='site_user_reset_pwd'),
|
|
path('API/SiteUserManagement/VerifyPassword', gerp_views.SiteUserVerifyPasswordView.as_view(), name='site_user_verify_pwd'),
|
|
path('API/SiteUserManagement/EnableAccount', gerp_views.SiteUserEnableView.as_view(), name='site_user_enable'),
|
|
path('API/SiteUserManagement/DisableAccount', gerp_views.SiteUserDisableView.as_view(), name='site_user_disable'),
|
|
path('API/SiteUserManagement/EnableAccountEmailVerify', gerp_views.SiteUserEmailVerifyView.as_view(), name='site_user_enable_email'),
|
|
path('API/SiteUserManagement/DisableAccountEmailVerify', gerp_views.SiteUserEmailVerifyView.as_view(), name='site_user_disable_email'),
|
|
path('API/SiteUserManagement/GetUser2FAInfo', gerp_views.SiteUser2FAInfoView.as_view(), name='site_user_2fa_info'),
|
|
|
|
path('API/SiteUserManagement/Backpack/GetUserBackpackItems', gerp_views.SiteUserBackpackView.as_view(), name='site_user_backpack_get'),
|
|
path('API/SiteUserManagement/Backpack/AddUserBackpackItem', gerp_views.SiteUserBackpackView.as_view(), name='site_user_backpack_add'),
|
|
path('API/SiteUserManagement/Backpack/ModifyUserBackpackItem', gerp_views.SiteUserBackpackView.as_view(), name='site_user_backpack_modify'),
|
|
path('API/SiteUserManagement/Backpack/DeleteUserBackpackItem', gerp_views.SiteUserBackpackView.as_view(), name='site_user_backpack_delete'),
|
|
|
|
path('API/Item/GetItems', gerp_views.ItemReferenceViewSet.as_view({'get': 'list'}), name='item_list'),
|
|
path('API/Item/AddItem', gerp_views.ItemReferenceViewSet.as_view({'post': 'add_item'}), name='item_add'),
|
|
path('API/Item/ModifyItemSettings', gerp_views.ItemReferenceViewSet.as_view({'post': 'modify_item'}), name='item_modify'),
|
|
path('API/Item/DeleteItem', gerp_views.ItemReferenceViewSet.as_view({'post': 'delete_item'}), name='item_delete'),
|
|
|
|
path('API/FormAPI/Tables', gerp_views.FormAPICompatView.as_view(), name='form_tables'),
|
|
path('API/FormAPI/Columns/<TableName>', gerp_views.FormAPICompatView.as_view(), name='form_columns'),
|
|
path('API/FormAPI/Get/<TableName>', gerp_views.FormAPICompatView.as_view(), name='form_get'),
|
|
path('API/FormAPI/Add/<TableName>', gerp_views.FormAPICompatView.as_view(), name='form_add'),
|
|
path('API/FormAPI/Modify/<TableName>/<id>', gerp_views.FormAPICompatView.as_view(), name='form_modify'),
|
|
path('API/FormAPI/ModifyItem/<TableName>/<id>', gerp_views.FormAPICompatView.as_view(), name='form_modify_item'),
|
|
path('API/FormAPI/Delete/<TableName>/<id>', gerp_views.FormAPICompatView.as_view(), name='form_delete'),
|
|
path('API/FormAPI/CodeDisplay', gerp_views.FormAPICompatView.as_view(), name='form_code_display'),
|
|
path('API/FormAPI/WorkOrderStats', gerp_views.WorkOrderStatsView.as_view(), name='form_workorder_stats'),
|
|
path('API/FormAPI/MenuSearch', gerp_views.MenuViewSet.as_view({'get': 'search'}), name='form_menu_search'),
|
|
path('API/FormAPI/RoleSearch', gerp_views.RoleViewSet.as_view({'get': 'search'}), name='form_role_search'),
|
|
path('API/FormAPI/UserRoleSearch', gerp_views.UserRoleViewSet.as_view({'get': 'search'}), name='form_user_role_search'),
|
|
path('API/FormAPI/CompanySearch', gerp_views.CompanyViewSet.as_view({'get': 'search'}), name='form_company_search'),
|
|
path('API/FormAPI/TenantSearch', gerp_views.TenantViewSet.as_view({'get': 'search'}), name='form_tenant_search'),
|
|
path('API/FormAPI/UserSearch', gerp_views.SiteUserManagementView.as_view(), name='form_user_search'),
|
|
path('API/FormAPI/DepartmentSearch', gerp_views.DepartmentViewSet.as_view({'get': 'search'}), name='form_department_search'),
|
|
path('API/FormAPI/PermissionSearch', gerp_views.PermissionViewSet.as_view({'get': 'search'}), name='form_permission_search'),
|
|
path('API/FormAPI/PositionTemplateSearch', gerp_views.PositionTemplateViewSet.as_view({'get': 'search'}), name='form_position_template_search'),
|
|
path('API/FormAPI/PositionSearch', gerp_views.PositionViewSet.as_view({'get': 'search'}), name='form_position_search'),
|
|
path('API/FormAPI/ShopSearch', gerp_views.ShopViewSet.as_view({'get': 'search'}), name='form_shop_search'),
|
|
path('API/FormAPI/WorkgroupSearch', gerp_views.WorkgroupViewSet.as_view({'get': 'search'}), name='form_workgroup_search'),
|
|
path('API/FormAPI/CheckAdmin', gerp_views.CheckAdminView.as_view(), name='form_check_admin'),
|
|
path('API/Company/UploadIcon', gerp_views.CompanyIconUploadView.as_view(), name='company_upload_icon'),
|
|
|
|
# 租户入驻与审核工作流
|
|
path('API/Tenant/Apply', gerp_views.TenantApplyView.as_view(), name='tenant_apply'),
|
|
path('API/Tenant/Pending', gerp_views.TenantPendingListView.as_view(), name='tenant_pending'),
|
|
path('API/Tenant/Approve/<uuid:tenant_uuid>', gerp_views.TenantApproveView.as_view(), name='tenant_approve'),
|
|
path('API/Tenant/Reject/<uuid:tenant_uuid>', gerp_views.TenantRejectView.as_view(), name='tenant_reject'),
|
|
|
|
# 角色权限分配(权限树勾选)
|
|
path('API/Role/PermissionsTree', gerp_views.RolePermissionsTreeView.as_view(), name='role_permissions_tree'),
|
|
path('API/Role/SavePermissions', gerp_views.RoleSavePermissionsView.as_view(), name='role_save_permissions'),
|
|
|
|
# 订单状态流转(完整状态机)
|
|
path('API/Order/<str:action>/<uuid:order_uuid>', gerp_views.OrderFlowView.as_view(), name='order_flow'),
|
|
|
|
# 支付网关配置(脱敏显示)
|
|
path('API/Payment/Configs', gerp_views.PaymentConfigListView.as_view(), name='payment_config_list'),
|
|
path('API/Payment/ConfigDetail/<uuid:config_uuid>', gerp_views.PaymentConfigDetailView.as_view(), name='payment_config_detail'),
|
|
path('API/Payment/SaveConfig', gerp_views.PaymentConfigSaveView.as_view(), name='payment_config_save'),
|
|
path('API/Payment/DeleteConfig/<uuid:config_uuid>', gerp_views.PaymentConfigDeleteView.as_view(), name='payment_config_delete'),
|
|
|
|
# 仪表盘统计(按角色差异化)
|
|
path('API/Dashboard/Stats', gerp_views.DashboardStatsView.as_view(), name='dashboard_stats'),
|
|
|
|
path('API/doc/doc/GetDocs', gerp_views.DocView.as_view(), name='doc_list'),
|
|
path('API/doc/doc/GetDoc', gerp_views.DocView.as_view(), name='doc_get'),
|
|
path('API/doc/doc/AddDoc', gerp_views.DocView.as_view(), name='doc_add'),
|
|
path('API/doc/doc/ModifyDocSettings', gerp_views.DocView.as_view(), name='doc_modify'),
|
|
path('API/doc/doc/DeleteDoc', gerp_views.DocView.as_view(), name='doc_delete'),
|
|
path('API/doc/doc/ExportDocx', gerp_views.DocView.as_view(), name='doc_export_docx'),
|
|
path('API/doc/serie/GetSeries', gerp_views.SerieView.as_view(), name='serie_list'),
|
|
path('API/doc/serie/AddSerie', gerp_views.SerieView.as_view(), name='serie_add'),
|
|
path('API/doc/serie/ModifySerieSettings', gerp_views.SerieView.as_view(), name='serie_modify'),
|
|
path('API/doc/serie/DeleteSerie', gerp_views.SerieView.as_view(), name='serie_delete'),
|
|
|
|
path('API/Enterprise/GetEnterprise', crb_views.EnterpriseViewSet.as_view({'get': 'get_enterprise'}), name='enterprise_get'),
|
|
path('API/Enterprise/NewEnterprise', crb_views.EnterpriseViewSet.as_view({'post': 'new_enterprise'}), name='enterprise_new'),
|
|
path('API/Enterprise/GetEnterpriseCard', crb_views.EnterpriseViewSet.as_view({'get': 'get_enterprise_card'}), name='enterprise_card'),
|
|
path('API/Enterprise/Deregistration', crb_views.EnterpriseViewSet.as_view({'post': 'deregistration'}), name='enterprise_deregistration'),
|
|
path('API/Enterprise/GetEnterpriseMember', crb_views.EnterpriseUserViewSet.as_view({'get': 'get_members'}), name='enterprise_member_get'),
|
|
path('API/Enterprise/NewEnterpriseMember', crb_views.EnterpriseUserViewSet.as_view({'post': 'new_member'}), name='enterprise_member_new'),
|
|
path('API/Enterprise/DeleteEnterpriseMember', crb_views.EnterpriseUserViewSet.as_view({'post': 'delete_member', 'delete': 'delete_member'}), name='enterprise_member_delete'),
|
|
path('API/StoredValue/Cash', crb_views.CmeStoreValueViewSet.as_view({'post': 'cash'}), name='stored_value_cash'),
|
|
path('API/StoredValue/GetStoreValue', crb_views.CmeStoreValueViewSet.as_view({'get': 'get_store_value'}), name='stored_value_get'),
|
|
path('API/StoredValue/StoreValue', crb_views.CmeStoreValueViewSet.as_view({'post': 'store_value'}), name='stored_value_store'),
|
|
path('API/StoredValue/GetRules', crb_views.CmeStoreValueViewSet.as_view({'get': 'get_store_value_rules'}), name='stored_value_rules'),
|
|
path('API/wallet', crb_views.CmeBalancesViewSet.as_view({'get': 'wallet', 'post': 'wallet'}), name='wallet'),
|
|
path('API/Wallet/Exchange', crb_views.CmeBalancesViewSet.as_view({'post': 'exchange'}), name='wallet_exchange'),
|
|
path('API/Wallet/GenerateShareToken', crb_views.CmeBalancesViewSet.as_view({'post': 'generate_share_token'}, permission_classes=[crb_views.IsAuthenticated]), name='wallet_generate_share_token'),
|
|
path('API/Wallet/SharedBalance', crb_views.CmeBalancesViewSet.as_view({'get': 'shared_balance'}, permission_classes=[crb_views.AllowAny]), name='wallet_shared_balance'),
|
|
path('API/Wallet/ShareQRCode', crb_views.CmeBalancesViewSet.as_view({'get': 'share_qrcode'}, permission_classes=[crb_views.AllowAny]), name='wallet_share_qrcode'),
|
|
|
|
# 商店系统(淘宝/拼多多风格游戏内商店)
|
|
# 商品
|
|
path('API/Shop/ProductList', crb_views.ShopProductViewSet.as_view({'get': 'list_public'}, permission_classes=[crb_views.AllowAny]), name='shop_product_list'),
|
|
path('API/Shop/ProductDetail', crb_views.ShopProductViewSet.as_view({'get': 'detail'}, permission_classes=[crb_views.AllowAny]), name='shop_product_detail'),
|
|
path('API/Shop/MyProducts', crb_views.ShopProductViewSet.as_view({'get': 'my_products'}), name='shop_my_products'),
|
|
path('API/Shop/CreateProduct', crb_views.ShopProductViewSet.as_view({'post': 'create_product'}), name='shop_product_create'),
|
|
path('API/Shop/ModifyProduct', crb_views.ShopProductViewSet.as_view({'post': 'modify_product'}), name='shop_product_modify'),
|
|
path('API/Shop/DeleteProduct', crb_views.ShopProductViewSet.as_view({'post': 'delete_product'}), name='shop_product_delete'),
|
|
path('API/Shop/SetProductStatus', crb_views.ShopProductViewSet.as_view({'post': 'set_status'}), name='shop_product_status'),
|
|
# 购物车
|
|
path('API/Shop/CartList', crb_views.ShopCartViewSet.as_view({'get': 'list'}), name='shop_cart_list'),
|
|
path('API/Shop/CartAdd', crb_views.ShopCartViewSet.as_view({'post': 'add'}), name='shop_cart_add'),
|
|
path('API/Shop/CartUpdate', crb_views.ShopCartViewSet.as_view({'post': 'update_quantity'}), name='shop_cart_update'),
|
|
path('API/Shop/CartRemove', crb_views.ShopCartViewSet.as_view({'post': 'remove'}), name='shop_cart_remove'),
|
|
path('API/Shop/CartClear', crb_views.ShopCartViewSet.as_view({'post': 'clear'}), name='shop_cart_clear'),
|
|
# 订单
|
|
path('API/Shop/OrderList', crb_views.ShopOrderViewSet.as_view({'get': 'list_orders'}), name='shop_order_list'),
|
|
path('API/Shop/OrderDetail', crb_views.ShopOrderViewSet.as_view({'get': 'detail'}), name='shop_order_detail'),
|
|
path('API/Shop/CreateOrder', crb_views.ShopOrderViewSet.as_view({'post': 'create_order'}), name='shop_order_create'),
|
|
path('API/Shop/PayOrder', crb_views.ShopOrderViewSet.as_view({'post': 'pay'}), name='shop_order_pay'),
|
|
path('API/Shop/CancelOrder', crb_views.ShopOrderViewSet.as_view({'post': 'cancel'}), name='shop_order_cancel'),
|
|
path('API/Shop/ShipOrder', crb_views.ShopOrderViewSet.as_view({'post': 'ship'}), name='shop_order_ship'),
|
|
path('API/Shop/ConfirmOrder', crb_views.ShopOrderViewSet.as_view({'post': 'confirm'}), name='shop_order_confirm'),
|
|
path('API/Shop/RefundOrder', crb_views.ShopOrderViewSet.as_view({'post': 'refund'}), name='shop_order_refund'),
|
|
path('API/Shop/RefundApprove', crb_views.ShopOrderViewSet.as_view({'post': 'refund_approve'}), name='shop_order_refund_approve'),
|
|
|
|
path('API/SVEList', sve_views.SVEViewSet.as_view({'get': 'list_sve', 'post': 'list_sve'}), name='sve_list'),
|
|
path('API/GetInformation', sve_views.SVEViewSet.as_view({'get': 'get_information', 'post': 'get_information'}), name='sve_info'),
|
|
path('API/Write', sve_views.SVEViewSet.as_view({'post': 'write'}), name='sve_write'),
|
|
|
|
path('API/InitConversation', invite_views.InviteConversationViewSet.as_view({'post': 'init'}), name='invite_init'),
|
|
path('API/SendConversation', invite_views.InviteConversationViewSet.as_view({'post': 'send'}), name='invite_send'),
|
|
path('API/ConversationHistory', invite_views.InviteConversationViewSet.as_view({'get': 'history', 'post': 'history'}), name='invite_history'),
|
|
|
|
path('API/UserBind.api', mc_views.UserBindView.as_view(), name='mc_user_bind'),
|
|
]
|
|
|
|
urlpatterns += [
|
|
re_path(r'^static/(?P<path>.*)$', static_serve, {'document_root': settings.STATIC_ROOT}),
|
|
re_path(r'^media/(?P<path>.*)$', static_serve, {'document_root': settings.MEDIA_ROOT}),
|
|
path('', SubdomainView.as_view(), name='index'),
|
|
re_path(r'^(?P<file_path>.+)$', SubdomainView.as_view(), name='subdomain_file'),
|
|
]
|