2009-09-05 9 views
2

djangoでマークアップアプリを有効にしようとしていて、 'django.contrib.markup'をINSTALLED APPSに追加しました。私のモデルでは「importmarkdown」としてインポートします。 dbと何かを追加しようとすると、私はいつもimporterrorを取得します。私はアプリのインストールに関する問題でなければならないと思うか、何か不足していますか?django.contrib.markupのImportError

これは私が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() 

大きな感謝..

答えて

5

私はあなたのプロジェクトにdjango.contrib.markupアプリを追加すると、あなたの内{% load markup %}する能力を与えることを考えますテンプレート(the official Django docs参照)。あなたがまだそれを使用するにはMarkdown from PyPIをインストールする必要があると思います(sudo easy_install Markdown)。

+2

これは{%load markup%}のときに、(|中でも) "| markdown"フィルタを使用することができます。それ以外の場合は、この答えは正しいです。 –

2

また、これが動作するには、あなたのPythonパスにMarkdown for Pythonがインストールされていることを確認する必要があります。

+0

easy_installは、/ home/[username]/binディレクトリにmarkdownをインストールします。私はPythonパスを更新するために、export PYTHONPATH =/home/[username]/bin/markdownを使用します。しかし、私はまだマークダウンエラーという名前のモジュールを取得します。それについては何ですか? – israkir

+0

開発サーバーまたは運用サーバーを使用していますか? djangoシェルからマークダウンをインポートしようとするとどうなりますか? –

+0

プロダクションサーバーを使用しています。 djangoシェルで動作します。 なぜeasy_installでうまくいかなかったのか分かりませんが、後で私はmarkdown libをインストールしてソースコードをダウンロードして手動でセットアップし、pythonpathを再度設定しました。それは働いた..助けをありがとう;) – israkir

0

私は今日あなたと同じ問題を抱えています。あなたのソリューションは、easy_installを使うのではなく、ソースからコンパイルして動作します。しかし、私はまだその答えに満足していません、なぜeasy_installがうまくいかないのですか?私たちはdjangoシェルサーバーは動作しますが、プロダクションサーバーは正しく動作しません。解決は非常に簡単です、あなたはApacheを再起動する必要があります。私は理由を知らないが、あなたがサービスを再起動した後、httpd(centos上で)を再起動すると、問題はなくなった。