我希望能夠從django admin更改一些設置,例如:網站標題或頁腳。我想與包含此設置的模型一起使用應用程序,但此設置應爲單一副本。什麼是最好的辦法呢?django admin中的用戶設置
0
A
回答
1
您可以創建@staff_member_required裝飾,這使得視圖/保存表單:
from django.contrib.admin.views.decorators import staff_member_required
...
@staff_member_required
def edit_config(request,):
saved = False
if request.method == "POST":
form = ConfigForm(request.POST)
if form.is_valid():
...
# Do saving here
saved = True
else:
form = ConfigForm()
...
context = {
'form': form,
'saved': saved,
}
return render_to_response('staff/edit_config.html', context, context_instance=RequestContext(request))
使用django forms在視圖中,並把它傳遞給模板。
然後,在模板中擴展'admin/base_site.html',以便您的表單具有管理外觀。下面是一個示例模板:
{% extends 'admin/base_site.html' %}
{% load i18n adminmedia %}
{% block title %}Edit Configuration {{ block.super }} {% endblock %}
{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/forms.css" />{% endblock %}
{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="/admin/">{% trans "Home" %}</a> > Edit Configuration
</div>
{% endblock %}
{% block content %}
<h1>Edit Configuration</h1>
{% if saved %}
<p class="success" style="background-color:#9F9; padding: 10px; border: 1px dotted #999;">
Settings were saved successfully!
</p>
{% endif %}
<form method="POST" action="">
{% csrf_token %}
<fieldset class="module aligned">
<h2>Configuration</h2>
<div class="description"></div>
{% for field in form %}
<div class="form-row {% if field.errors %}errors{% endif %}">
{{ field.errors }}
<div class="field-box">
{{ field.label }} : {{ field }}
{% if field.help_text %}
<p class="help">{{ field.help_text|safe }}</p>
{% endif %}
</div>
</div>
{% endfor %}
</fieldset>
<div class="submit-row">
<input type="submit" value="{% trans 'Save' %}" class="default" name="_save"/>
</div>
</form>
{% endblock %}
您可以使用數據庫,INI文件,Redis的,...存儲配置。您可以定義一些通用後端,並從中繼承自定義後端,因此非常靈活。
1
聽起來像django-constance將是一個很好的選擇。
儘管django-flatblocks可能就足夠了。
Django的flatblocks是在網站上搬運小 文本塊一個簡單的應用程序。想想它,就像django.contrib.flatpages 只是不是整個頁面,而只是它的一部分,就像描述你可以在網站上做什麼的 信息文本。
相關問題
- 1. 動態設置django中的readonly_fields admin
- 2. 如何在admin中設置django upload_handler?
- 3. 在django admin中設置定製SQL
- 4. 在django中設置了favicon admin
- 5. 將用戶屬性設置爲firebase-admin
- 6. django-admin無法找到設置文件?
- 7. 如何設置Django Admin在其用戶配置文件選項卡中顯示所有用戶的屬性?
- 8. 用django-admin中的django導出用戶數據爲CSV
- 9. Django Admin的最終用戶文檔
- 10. 在django admin change_form.html中顯示登錄用戶的用戶組?
- 11. Django:在Django的admin用戶中添加新字段
- 12. django-admin的index.html中的錯誤使用django-admin-notifications
- 13. django-admin中的網站配置
- 14. 在Django Admin中設置ForeignKey是可選的?
- 15. Django Admin - 添加一個可以在admin.py中設置的新塊?
- 16. 如何在Django的TabularInline formset中設置默認值admin
- 17. 如何在admin中實現設置?
- 18. django admin有效用戶登錄失敗
- 19. 獲取當前用戶在Django admin
- 20. 爲Django更改用戶ModelAdmin admin
- 21. 將django admin暴露給用戶。有害?
- 22. 修改django admin用戶界面
- 23. 在Yii中設置用戶角色(admin/user)
- 24. django admin中的只讀字段admin/inline
- 25. 鼻子Django的用戶設置測試
- 26. 如何在django admin中過濾由外鍵字段設置的django查詢?
- 27. Django - django-admin-tools
- 28. 如何在django admin中使用選項中的查詢設置子頁面
- 29. 如何告訴django-admin使用哪個設置模塊?
- 30. 如何在Django Admin中設置其他內聯標題?
我不想使用第三方應用程序。我可以在沒有第三方應用程序的情況下這樣做嗎 – Gr1N 2012-04-04 15:51:00
當然,您可以創建一個模型來存儲您需要的數據,然後創建一個模板標記,以在適當的位置呈現數據。但正如你已經指出這個解決方案,你應該澄清你的確切問題。那麼,在這種情況下又是什麼讓你無法使用第三方應用呢? Flatblocks幾乎可以做你想做的事情,因爲已經有一些人在使用它,所以你可以肯定它考慮到目前你還沒有意識到的問題/方面。至少你可以看看它的來源,爲你自己的解決方案畫一些靈感。 – arie 2012-04-09 12:05:05