8
votes

Comment obtenir actuel_app pour utiliser avec inverse dans une application Django réutilisable multiplie?

J'écris une application réutilisable. Et je veux le déployer plusieurs fois.

voici Urls.py:

urlpatterns = patterns('webui.photos.views',
url(r'^$', album_list, name="album-list" )
url(r'^newalbum/$', album_page, {'create': True}, name="album-create"),)


0 commentaires

4 Réponses :




-3
votes

Après avoir exploré ce sujet pendant plusieurs jours, j'ai constaté qu'il n'est pas naturel de monter plus d'une fois sur l'application Django.

Il y a la mise en œuvre du modèle d'applications pluggable: http://github.com/nowells/django-ppluggables . Ça a l'air trop délicat pour moi.

J'ai donc décidé de déplacer une fonctionnalité répétée sur des balises personnalisées et des modèles de dupliqués pour chaque utilisation de mon application. J'espère utiliser des balises personnalisées et une fonctionnalité d'étendue m'aidez à suivre le principe sec.


1 commentaires

Ce n'est pas naturel de monter plus d'une fois que - pas vrai .



12
votes

Je sais que c'est une jolie vieille question ... Mais je pense avoir trouvé une solution:

Comme Will Hardy suggéra que vous devrez garder app_name code> identique pour les deux instances (ou Ne le définissez pas du tout, il sera par défaut à l'application les URL incluses résident dans). Définissez un espace de noms séparé pour chaque instance d'application: P>

reverse('webui_photos:album-create', current_app=resolve(self.request.path).namespace))


1 commentaires

Etant donné que v1.10 Resolve () est dans django.urls , pas accessible via django.core.urlresolvers depuis v2.