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"),)
4 Réponses :
Je crois que c'est ce que Sites code> < / a> cadre est pour. p>
J'ai lu Docs que vous avez suggéré. Je ne pense pas que c'est bonne réponse. Selon le cadre des sites de documentation est utile lorsque vous souhaitez partager des informations entre les sites, mais dans mon cas il n'y a qu'un seul site. Techniquement, il est possible de déployer mon application Photos sur différents sous-domaines, mais je pense que c'est faux de créer des domaines distincts pour chaque instance de l'application réutilisable.
Dans vos URL, vous avez un App_Name différent code> même si c'est la même application. Définissez le
app_name code> sur la même chose et définissez
Espace de noms code> uniquement pour chaque instance. EG.
urlpatterns = patterns('',
(r'^carphotos/', include('webui.photos.urls', app_name="webui_photos", namespace='car-photos') ),
(r'^userphotos/', include('webui.photos.urls', app_name="webui_photos", namespace='profile-photos') ),)
J'ai essayé ce code et ça ne résout pas le problème. Comme je l'ai trouvé, Current_App est l'argument du contexte ou de la demandeContext que je dois fournir explicitement. Et comment obtenir la question de cette page. BTW Après avoir défini l'argument de l'espace de noms, mes URL deviennent cassées comme décrit à code.djangoproject.com/ticket/115594 a>
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. p>
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. P>
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. P>
Ce n'est pas naturel de monter plus d'une fois que i> - pas vrai .
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))
Etant donné que v1.10 Resolve () est dans django.urls code>, pas accessible via
django.core.urlresolvers code> depuis v2.