2009-09-05 5 views
2

J'essaie d'activer l'application de balisage dans django et ajouté 'django.contrib.markup' à INSTALLED APPS et dans mon modèle je l'importe comme "importer markdown" .. mais quand je vais à DB et essayer d'ajouter quelque chose, je reçois toujours importerror. Je suppose qu'il doit être question de l'installation de l'application ou suis-je manquer quelque chose?ImportError pour django.contrib.markup

Voilà comment je le fais dans models.py:

class Entry(...) 
title = models.CharField(verbose_name="Title", max_length=255) 
slug = models.SlugField(verbose_name="Slug") 
content_markdown = models.TextField(verbose_name="Markdown Content", 
            help_text="Use Markdown syntax here.") 
content = models.TextField(verbose_name="Page content as HTML", 
          help_text="You don't have to touch here.", 
          blank=True, null=True) 
date = models.DateTimeField(verbose_name="Date Published") 
author = models.ForeignKey(User, verbose_name="Author") 

def save(self): 
    import markdown 
    self.content = markdown.markdown(self.content_markdown) 
    super(Page, self).save() 

grand merci à l'avance ..

Répondre

5

Je pense que l'ajout de l'application django.contrib.markup à votre projet, vous donne la possibilité de {% load markup %} dans votre modèles (voir the official Django docs). Je pense que vous devrez toujours installer Markdown from PyPI pour l'utiliser (sudo easy_install Markdown).

+2

C'est {% load markup%}, alors vous pouvez utiliser le filtre "| markdown" (entre autres). Sinon, cette réponse est correcte. –

2

Vous devez également vous assurer que vous avez Markdown for Python installé sur votre chemin Python pour que cela fonctionne.

+0

easy_install installe le répertoire markdown to/home/[nom d'utilisateur]/bin. J'utilise export PYTHONPATH =/home/[nom d'utilisateur]/bin/markdown pour mettre à jour mon chemin python. mais je reçois toujours l'erreur markdown du module No. qu'est-ce que c'est alors? – israkir

+0

Utilisez-vous le serveur de développement ou un serveur de production? Que se passe-t-il si vous essayez d'importer la démarque à partir d'un shell Django? –

+0

J'utilise le serveur de production. par shell django, ça marche. Je ne sais pas pourquoi cela n'a pas fonctionné avec easy_install, mais plus tard, j'ai installé le code source de téléchargement markdown lib et l'ai configuré manuellement, puis j'ai redéfini le chemin pythonpath. alors ça a marché .. merci pour l'aide;) – israkir

0

J'ai le même problème que vous aviez aujourd'hui. Votre solution fonctionne, compilez-la à partir de la source plutôt que d'utiliser easy_install. Mais je ne suis toujours pas satisfait de cette réponse, pourquoi easy_install ne fonctionne pas? Nous savons que le serveur shell django fonctionne, mais pas le serveur de production? La solution est très simple, vous devez redémarrer Apache. Je ne sais pas pourquoi, mais après avoir exécuté le service redémarrer httpd (sur centos), alors le problème est parti.

Questions connexes