任何人都可以描述我如何在django.contrib.flatpages中實現ckeditor嗎?任何人都可以描述我如何在django.contrib.flatpages中實現ckeditor嗎?
回答
幾個步驟來完成這項工作。首先,確保ckeditor.js以某種方式從django提供。有關這方面的信息可以在http://docs.djangoproject.com/en/1.2/howto/static-files/#howto-static-files找到。在這個例子中,我將從127.0.0.1:8000/js/ckeditor/ckeditor.js開始。
您需要重寫標準flatpage更改表單模板。在你的模板目錄下,建立在以下子目錄中的文件:<你的模板目錄> /admin/flatpages/flatpage/change_form.html
創建以下文本中:
{% extends "admin/change_form.html" %}
{% block extrahead %}
{{ block.super }}
<script type="text/javascript" src="/js/ckeditor/ckeditor.js"></script>
<script type="text/javascript" charset="utf-8">
var $ = jQuery = django.jQuery.noConflict(); // Use djangos jquery as our jQuery
</script>
<script type="text/javascript" src="/js/ckeditor/adapters/jquery.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
$('textarea').ckeditor({
"skin":"kama",
"width" : 850,
// "toolbar" : "Basic", // uncomment this line to use a basic toolbar
});
});
</script>
{# Adding some custom style to perty thing up a bit. #}
<style type="text/css">
div>.cke_skin_kama{
width: 100%;
padding: 0!important;
clear: both;
}
</style>
{% endblock %}
前幾行包含django的額外塊的默認文本。腳本的其餘部分導入ckeditor javascripts,並將django的已導入jQuery與ckeditor jQuery適配器一起使用。最後,我們最終在頁面上強加一些風格,因爲默認情況下,事情看起來有點混亂。
從這裏,您可以通過在ckeditor調用中實現不同的選項來快速更改工具欄。如果非技術人員要編輯這些頁面,則可能需要使用簡單的工具欄。您可以在上面的代碼中取消註釋該行來實現該行。
找到很好的解決辦法:
這是一個有點棘手。我在我的urls.py中有admin.autodiscover(), ,所以它會自動創建一個管理頁面,如django.contrib.flatpages中定義的 。我當然不想去 分開Django的東西,也不想給 增加自動發現的便利。
http://www.elidickinson.com/story/django-flatpages-and-ckeditor/2011-11
對於一個解決方案,而模板黑客檢查此頁: http://johansdevblog.blogspot.it/2009/10/adding-ckeditor-to-django-admin.html
我在這裏報告的例子,如果鏈路出現故障。 這是一個簡單的模型。
from django.db import models
class SampleModel(models.Model):
title = models.CharField(max_length=50)
text = models.TextField()
def __unicode__(self):
return self.title
這是如何將ckeditor支持添加到特定類型的字段,在這種情況下是TextArea。
from sampleapp.models import SampleModel
from django.contrib import admin
from django import forms
from django.db import models
class SampleModelAdmin(admin.ModelAdmin):
formfield_overrides = { models.TextField: {'widget': forms.Textarea(attrs={'class':'ckeditor'})}, }
class Media:
js = ('ckeditor/ckeditor.js',) # The , at the end of this list IS important.
admin.site.register(SampleModel,SampleModelAdmin)
此時ckeditor.js會檢查所有設置爲「CKEditor的」類屬性的文本區域。
- 1. 任何人都可以詳細描述如何在eclipse中設置javasci(SCILAB)嗎?
- 2. 任何人都可以描述範圍的流程流程嗎?
- 3. 任何人都可以在我的Damerau-Levenshtein Distance實現中發現錯誤嗎?
- 4. 任何人都可以描述我,在android的aidl中單向是什麼?
- 5. 任何人都可以幫助我嗎?
- 6. 任何人都可以在fork()之後解釋有關'文件描述符'的簡單描述嗎?
- 7. 任何人都可以點我在Angular2
- 8. 任何人都可以在c中幫助我嗎?
- 9. 任何人都可以解釋OAuth嗎?
- 10. 任何人都可以糾正它嗎?
- 11. 任何人都可以描述什麼是Twitter的詳細流api限制?
- 12. 任何人都可以描述Dijkstra算法的這部分代碼
- 13. 任何人都可以解釋我StandardScaler?
- 14. 任何人都可以告訴我如何在Rails3中做鏈接標記嗎?
- 15. 任何人都可以使用以下JScript幫助我嗎?
- 16. 任何人都可以在VS2012的C++/CLI中使用System.Windows.Input.ICommand嗎?
- 17. 任何人都可以在C中解釋這個結構嗎?
- 18. 任何人都可以在Delphi或FreePascal中指向AMF庫嗎?
- 19. 任何人都可以解釋我這個代碼行嗎?
- 20. 任何人都可以幫助我使用C++類嗎?
- 21. 任何人都可以加快我的MySQL存儲過程嗎?
- 22. 任何人都可以請幫我改正這段代碼嗎?
- 23. 任何人都可以爲我識別這種語言嗎?
- 24. 任何人都可以幫助我這個宏嗎?
- 25. 任何人都可以幫助我找到Microsoft.VisualStudio.SourceSafe.Interop .dll嗎?
- 26. 任何人都可以幫助我提高查詢效率嗎?
- 27. 任何人都可以幫我編寫LINQ查詢嗎?
- 28. 任何人都可以幫我解決這個錯誤嗎? 0x80041002
- 29. 任何人都可以幫我幹這個REGEX嗎?
- 30. 任何人都可以解釋我這個javax swing方法嗎?
我很想看到非模板黑客解決方案,但現在鏈接已經死機。 – 2013-03-29 21:45:16
我發現這是來自同一作者:https://gist.github.com/elidickinson/1379652 – pymarco 2014-04-30 01:53:37