Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

592
Views
¿Cómo configurar direcciones URL en django cuando hay varias aplicaciones dentro del mismo proyecto?

Soy nuevo en Django. Estoy tratando de configurar las URL. Tengo 2 aplicaciones bajo un proyecto 'mysite'. En el urls.py de mysite, he incluido las URL de las 2 aplicaciones (llamadas 'login' y 'org')

misitio/urls.py

 urlpatterns = [ url(r'^login/', include('login.urls')), url(r'^org/', include('org.urls')), ]

login/urls.py

 app_name = 'login' urlpatterns = [ url(r'^signup/$', login_views.signup, name='signup'), ]

org/urls.py

 app_name = 'org' urlpatterns = [ url(r'^organizations/add/$', views.addorg, name='addorg'), ]

Habiéndolo configurado de esta manera, las URL de mi sitio se convierten en las siguientes:

 site.com/login/login/signup site.com/org/organizations/add

Quisiera las URLs para que sean como las siguientes.

 site.com/login/signup site.com/organizations/add

¿Cómo hago para que funcionen los 'incluye'? ¿Funcionará si cambio mysite/urls.py a lo siguiente?

 urlpatterns = [ url(r'^$', include('login.urls')), url(r'^$', include('org.urls')), ]

¿Hay una mejor manera de configurar las URL cuando hay varias aplicaciones?

Gracias

about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

En la configuración que describe, la URL de inicio de sesión no sería 'site.com/login/login/signup' , sino 'site.com/login/signup' . ¿De dónde vendría el segundo 'login/' ?

La solución que sugieres,

 urlpatterns = [ url(r'^$', include('login.urls')), url(r'^$', include('org.urls')), ]

generalmente funcionará si no hay una URL que ocurra de manera idéntica en ambas aplicaciones. Pero no es ideal, ya que todos los patrones en el urs de inicio de sesión se probarán innecesariamente para todas las solicitudes.

Por lo tanto, es posible que desee considerar eliminar los prefijos internos de specific_app.urls , especialmente si esos prefijos son los mismos para todas las vistas de la aplicación. Déjelo a quien quiera que use e incluya esa aplicación (aquí: mysite.urls) en qué ruta quieren incluir la aplicación.

 # login/urls.py urlpatterns = [ # no 'login' prefix here. Includers know which app # they are including and how they want do that. url(r'^signup/$', login_views.signup, name='signup'), ] # org/urls.py urlpatterns = [ # same: no 'org' prefix url(r'^add/$', views.addorg, name='addorg'), ] # mysite.urls.py urlpatterns = [ url(r'^login/$', include('login.urls')), url(r'^organizations/$', include('org.urls')), ]

Las URL resultantes serán:

 site.com/login/signup site.com/organizations/add
about 4 years ago · Santiago Trujillo Report

0

misitio/urls.py

 urlpatterns = [ url(r'^login/', include('login.urls')), url(r'^org/', include('org.urls')), ]

login/urls.py

 app_name = 'login' urlpatterns = [ url(r'^signup/$', login_views.signup, name='signup'), ]

Si pones tus urls de esta manera...

Su url de registro será site.com/login/signup La fórmula es: [ el dominio de su sitio + urls en main_project/urls.py + urls en any_app/urls.py ]

Entonces, para corregir la URL de su organización, debe refactorizar su my_site/urls.py como:

 urlpatterns = [ url(r'^login/', include('login.urls')), url(r'^organizations/', include('org.urls')), ]

y en su orgs/urls.py debe ser

 app_name = 'org' urlpatterns = [ url(r'^add/$', views.addorg, name='addorg'), ]

Espero que ayude.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!