- Nogs,
Bonjour à tous !
Je cherche à utiliser un projet Django comme une lib tierce (un CMS open source) en surchargeant ses vues, modèles et urls.
Pour cela j’ai écris un setup.py pour ce projet, une fois installé j’ai inclus les apps du projet dans mon settings.py.
INSTALLED_cms_APPS = [
'cms.cms_core',
'cms.cms_config',
'cms.media',
'cms.content',
]
J’ai fait pointer les URLs de mon projets sur les urls.py de chacunes des apps du CMS.
for app_name in settings.INSTALLED_CMS_APPS:
short_app_name = app_name.split('.')[-1]
urlpatterns += patterns('', (regex_url, include('%s.urls' % app_name)))
syncdb, migration, à ce stade là tout fonctionne.
Exemple de cms.content.models:
class Post(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
Exemple de cms.content.views:
def post_list(request):
p = Post.objects.all()
return render(request, 'blog/post_list.html', {'p', p})
Maintenant je cherche, par exemple, à ce que la vue post_list renvoie des données de mon modèle Comment sans modifier directement les sources mais en le faisant dans mon projet.
Auriez vous une idée de comment procéder ?
C’est un sujet large, j’en ais conscience, mais je ne parviens pas à trouver de doc à ce sujet même si la documentation Django en donne une introduction.