有沒有辦法讓字段集可摺疊,但是開始展開?將摺疊添加到字段集類時,它將獲得該功能,但會開始摺疊。我查看了顯示/隱藏字段集內容的JS,但看起來並不像我想要的那樣做,所以我假設我必須將我的擁有。只是想在我完成這項工作之前進行檢查。Django Admin - 將摺疊添加到字段集,但讓它開始展開
回答
django-grappelli提供了此功能之一。這是關於該功能的wiki page(帶截圖)。
老問題,但我遇到了同樣的一個,並可以使用標準的Django來實現的答案想出了:
創建文件:管理/(APP)在/(模型)/change_form.html您模板目錄,使你的(模型)你的(應用程序)使用該表單文件。
將此代碼添加到文件:
{% extends "admin/change_form.html" %}
{% block extrahead %}
<!-- Load superblock (where django.jquery resides) -->
{{ block.super }}
<!-- only do this on 'add' actions (and not 'change' actions) -->
{% if add and adminform %}
<script type="text/javascript">
(function($) {
$(document).ready(function($) {
//Remove the 'collapsed' class to make the fieldset open
$('.collapse').removeClass('collapsed');
//Remove the show/hide links
$('.collapse h2 a').remove();
//Tidy up by removing the parenthesis from all headings
var $headings = $(".collapse h2");
$headings.each(function(i, current){
var str = $(current).text();
parenthesisStart = str.indexOf('(');
$(current).text(str.substring(0, parenthesisStart));
});
});
})(django.jQuery);
</script>
{% endif %}
{% endblock %}
有關使用,而不是 「正規軍」 的jQuery django.jQuery的更多信息,請參見:http://blog.picante.co.nz/post/Customizing-Django-Admin-with-jQuery--Getting--is-not-a-function/
從Setomidor答案開始,我想建議一個更簡單的替代方案,它完全符合你的要求(如果Grappelli不是一個選項,顯然)。
創建模板覆蓋中的說明(admin/(app)/(model)/change_form.html
)和不是刪除了「添加」模式的情況下可摺疊效果,只需呼叫現場設置崩塌的點擊方法(即與小鏈接顯示/隱藏文本),以便在頁面加載後立即展開整個字段集。
admin.py:
class PageAdmin(admin.ModelAdmin):
fieldsets = (
(None, {
'fields': ('title', 'content',)
}),
('Other Informations', {
'classes': ('collapse', 'open'),
'fields': ('slug', 'create-date',)
}),
)
模板/ app_label /模型名稱/ change_form.html:
{% extends "admin/model_name/change_form.html" %}
{% block extrahead %}
{{ block.super }}
<script src="{{ STATIC_URL }}admin/js/collapse-open.js" type="text/javascript"></script>
{% endblock %}
靜態/管理/ JS/collapse-open.py:
(function($) {
$(document).ready(function() {
$('fieldset.collapse.open').removeClass('collapsed');
});
})(django.jQuery);
我調整了JavaScript以將「打開」更改爲「隱藏」 – mogga 2016-03-30 22:39:54
用grappelli docs代碼只需要添加「類」:('grp-collapse grp-closed')
例如
class EntryOptions(admin.ModelAdmin):
...
fieldsets = (
('', {
'fields': ('title', 'subtitle', 'slug', 'pub_date', 'status',),
}),
('Flags', {
'classes': ('grp-collapse grp-closed',),
'fields' : ('flag_front', 'flag_sticky', 'flag_allow_comments',),
}),
注:如果您使用格拉佩利版本< 2.4使用「GRP-封閉」,而不是「塌陷封閉」 * 實際上的倒閉,關閉「仍是工作,但建議使用新班
我知道這是真實的老,但我也只是遇到了這個問題。想到這個方式太難了,我發現了一個簡單的解決方案,似乎完成了涉及0個插件或額外js的工作。
在字段集構建「倒塌」,而不是「崩潰」添加到類:
fieldsets = [
('Start Expanded', {
'fields': ['field1', 'field2', 'field3'],
'classes': ['collapse in',]
})
]
- 1. 展開摺疊html字段Firefox
- 2. 添加CSS3過渡展開/摺疊
- 3. 將動畫添加到ListView以展開/摺疊內容
- 4. Django - 將表單添加到django admin中的字段集?
- 5. 將`help_text`添加到Django Admin字段
- 6. 展開/摺疊Div
- 7. jquery展開/摺疊?
- 8. 摺疊/展開optgroups
- 9. 摺疊/展開Groupboxes
- 10. 展開/摺疊jQuery
- 11. 如何知道Extjs字段集合已摺疊或展開
- 12. 級聯展開和摺疊現場集
- 13. WPF DataBound treeview展開/摺疊
- 14. 摺疊/展開圖片
- 15. ExpandableListView展開和摺疊
- 16. 展開並摺疊tableview行
- 17. Delphi DBgrid展開/摺疊
- 18. 展開和摺疊UITableview
- 19. 在Datagridview中展開/摺疊
- 20. 用css展開和摺疊
- 21. 展開/摺疊div元素?
- 22. Android展開/摺疊RelativeLayout
- 23. 展開/摺疊與HierarchicalDataTemplate
- 24. 展開摺疊Javascript代碼?
- 25. jQuery Datatables rowGroup摺疊/展開
- 26. 摺疊/展開的角
- 27. 展開和摺疊TreeView
- 28. 展開/摺疊跨度?
- 29. 摺疊並展開全部
- 30. 展開/摺疊HTML表格
謝謝,我很可能最終與該會。我們在另外兩個項目中使用了grappelli,我知道它可以做到這一點,當時沒有想到它。 – 2009-11-20 15:17:37