Di fronte a un problema con schema di profilo utente url come example.com/username in Django

StackOverflow https://stackoverflow.com/questions/3694795

Domanda

In un app Django, ho bisogno di creare gli URL di Twitter profilo utente con seguente struttura come:

  • example.com/<username>
  • example.com/<username>/friends
  • example.com/<username>/blog
  • example.com/<username>/some-page
  • example.com/<username>/some-other-page

Il mio urls.py:

urlpatterns = patterns('profiles.views',
    url(r'^(?P<account_name>[a-zA-Z0-0_.-]+)/$', 'show_profile', name='profiles_show_profile'),
    url(r'^(?P<account_name>[a-zA-Z0-0_.-]+)/friends/$', 'show_friends', name='profiles_show_blog'),
    url(r'^(?P<account_name>[a-zA-Z0-0_.-]+)/blog/$', 'show_blog', name='profiles_show_blog'),
)

Il mio primo problema è che mentre example.com/<username> funziona bene example.com/<username>/any-other-page non lo fa. Tutti finiscono in vista show_profile diversa dalla propria vista.

Nota: Tutto funziona bene se faccio gli URL cambiano la struttura URL example.com/user/<username>

Che cosa sto facendo male qui? Si prega di avvisare.

In secondo luogo, vorrei orientamenti sulle migliori pratiche Django (trappole, trucchi, ecc) nel trattare con schemi URL in cui prima parte è di per sé è variabile.

Grazie

È stato utile?

Soluzione

Non vedo il motivo per cui gli URL non funzionano. Si può provare a spostare il primo modello fino alla fine, in modo che gli altri modelli hanno la possibilità di abbinare prima. Il problema si sta descrivendo suona come example.com/user/any-page, il modello è la corrispondenza "user / any-page", come il nome dell'account. La regex si mostra non lo farei, ma forse il vostro codice attuale è leggermente diverso?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top