2009-09-05 48 views
2

我想在django中啓用標記應用程序,並在安裝的應用程序中添加'django.contrib.markup',並在我的模型中將其導入爲「導入標記」。但是當我去分貝,並嘗試添加一些東西,我總是得到importerror。我想iit一定是關於應用程序安裝問題,或者我錯過了什麼?ImportError for django.contrib.markup

這是我要做的事在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

它是{%加載標記%},然後允許您使用「| markdown」過濾器(等等)。否則,這個答案是正確的。 – 2009-09-06 14:28:01

2

您還必須確保在您的Python路徑上安裝了Markdown for Python才能正常工作。

+0

easy_install安裝markdown到/ home/[username]/bin目錄。我使用export PYTHONPATH =/home/[username]/bin/markdown來更新我的pythonpath。但我仍然得到No模塊名爲markdown錯誤。那麼那是什麼? – israkir 2009-09-05 19:28:39

+0

您是使用開發服務器還是生產服務器? 如果您嘗試從django shell導入降價,會發生什麼情況? – 2009-09-05 21:42:54

+0

我正在使用生產服務器。由Django殼,它的工作原理。 我不知道它爲什麼不能用easy_install,但後來我安裝了markdown lib下載源代碼並手動設置它,然後再次設置pythonpath。那麼它的工作..感謝您的幫助;) – israkir 2009-09-06 02:20:46

0

我有和現在一樣的問題。您的解決方案有效,從源代碼編譯而不是使用easy_install。但我仍然不滿意這個答案,爲什麼easy_install不起作用?我們知道django shell服務器的工作原理,但不是生產服務器的權利?解決方案非常簡單,您必須重新啓動apache。我不知道爲什麼,但是在運行服務重啓httpd(在centos上)之後,問題就沒有了。