1 回答

TA貢獻1770條經驗 獲得超3個贊
第一個解決方案:
手動覆蓋list_display_links和更改您的字段
這是一個兩步的過程。首先,我們需要改變get_list_display_links默認行為。
查看 django 的文檔和源代碼,您會發現它最終會使用list_display. 在您的管理課程中:
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
list_display = ('name', 'language', 'created_at')
list_filter = ('created_at', 'language')
list_display_links = [] #< With this, you still can add up a link to your original admin
search_fields = ('name',)
date_hierarchy = 'created_at'
ordering = ['-created_at']
def get_list_display_links(self, request, list_display):
"""
Return a sequence containing the fields to be displayed as links
on the changelist. The list_display parameter is the list of fields
returned by get_list_display().
"""
if self.list_display_links or self.list_display_links is None or not list_display:
# We make sure you still add your admin's links if you explicitly declare `list_display_links`
return self.list_display_links
else:
# We return empty list instead of `list_display[:1]`
# if no `list_display_links` is provided.
return []
然后使用這個答案,您可以自定義任何列。
第二種解決方案:
自己處理更改視圖
在您的管理課程中:
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
#... same things as you have
def change_view(self, request, object_id, form_url="", extra_context=None):
#Now, you can do pretty much whatever: it's a function based view!
我推薦第一個,因為我相信默認管理員change_view總是有用的。
添加回答
舉報