我的客戶想從django admin編輯該站點的css文件。 有什麼辦法可以做到嗎? 。 基本上他們想要的是能夠從django管理界面改變前端數據的顏色,字體等。編輯來自django admin的css文件
回答
最好的事情就是讓他編輯css文件本身。從本質上講,CSS本質上是一個相當靈活的工具,因此編寫一個管理它的方法相當困難(而且真的是矯枉過正)。這是已經容易拿起,任何漂亮的編輯器,如sublime或notepad++可能會比你使用管理站點建立任何更容易和更自然。另外,通過構建一個控制css的簡單方法,您的客戶可能會開始尋求更多的靈活性,直到您發現自己構建了一個完整的cms(相信我,我自己一直在那裏)。
更重要的是,您的客戶可能只想管理網站的小方面或細節。最近我有一個項目,允許我的用戶對我的應用程序進行顯示。我這樣做的方式是創建一個UserDesign模型,該模型擴展了基本的User模型並保留了非常具體的css數據。就像這樣:
class UserDesign(models.Model):
user = models.OneToOneField(User)
background_color = models.CharField(max_length=15)
font_color = models.CharField(max_length=20, choices=COLORS)
theme = models.CharField(max_length=20, choices=THEMES)
意思是,他們沒有控制整個css,但他們確實選擇了背景顏色和其他一些信息。這是任何網站的一個非常整潔的補充。但是,如果你是彎腰做了艱辛的道路,我會做這樣的事情:
class Selector(models.Model):
name = models.CharField(max_length=30)
def get_template(self):
attrs = [a.join() for a in self.attr_set.all()]
return """ %s { %s } """ % (self.name, ';'.join(attrs))
class Attr(models.Model):
key = models.CharField(max_length=30)
value = models.CharField(max_length=30)
selector = models.ForeignKey(Selector)
def join(self):
return ': '.join(self.key, self.value)
我選擇了30作爲MAX_LENGTH完全任意(你可能需要更長它),你可以使用一個TabularInline使每個選擇器都易於管理。然後你就可以輕鬆地使用不同的CSS定義裏面的模板本身:
<style>
{% for selector in selectors %}
{{ selector.get_template }}
{% endfor %}
</style>
當然,選擇模型將可能需要稱爲「模板」或「視圖」什麼的另一個領域,將其鏈接到一個特定的HTML文件,但在這一點上,它很快就開始轉移到建立自己的CMS(如前所述,這是一個令人頭痛的問題,不想編輯文本文件只是不合理)
第三個可行的選擇是創建一個代碼編輯器的視圖,並讓你的客戶通過網頁編輯他的CSS。這裏有足夠多的客戶端插件,比如ace或codemirror(當然,限制管理員的看法,這非常簡單)。
謝謝,這很有用......但首先我會試圖說服我的客戶不要做到這一點:) –
- 1. django的圖片編輯器admin
- 2. CSS文件編輯
- 3. Django Admin一次編輯多個模型
- 4. Django Admin - 批量編輯數據?
- 5. Django Admin「編輯選擇」操作?
- 6. django admin分層嵌入模型編輯
- 7. Django admin css問題
- 8. Django-Admin:來自UserProfile的list_filter屬性
- 9. 編輯.js文件來自python
- 10. 編輯.RAR文件評論來自python
- 11. Django admin - 允許手動編輯自動日期時間字段
- 12. Django Admin中的富文本編輯器圖像上傳
- 13. Django的Html標籤admin文本編輯器
- 14. Django編輯配置文件
- 15. Django Bootstrap Toolkit CSS編輯
- 16. 編輯django生成的JavaScript文件
- 17. CSS文本編輯
- 18. django admin中的自定義
- 19. 使用來自其他文件的數據來編輯xml文件的腳本
- 20. 自動編輯.csv文件
- 21. 自動文件編輯
- 22. 如何編輯web2py中的CSS文件
- 23. javascript文件中的css自動完成(原子編輯器)
- 24. django admin:自定義app_index與上下文
- 25. 保存來自內聯表單的自定義數據(django admin)
- 26. django admin - 組編輯或查看模型的權限
- 27. 在Django中不可編輯的外鍵Admin
- 28. hook django admin更改列表可編輯的保存按鈕
- 29. Django Admin - 以前的內聯表單不可編輯
- 30. 此文來自哪裏?與可編輯
使用cms代替 – catherine
是的,有辦法做到這一點 - 多個FWIW。現在有什麼_you_試過? –
我搜索了應用程序,執行job.found none.please幫助他... –