Как уже говорилось много раз - с Проверьте этот список все селектор CSS. div ~ p
выбраны все элементы , которым предшествует элемент
Мне нужен был только просмотрщик журнала в виде списка.
Я заставил его работать следующим образом:
class LogEntryAdmin(ModelAdmin):
actions = None
list_display = (
'action_time', 'user',
'content_type', 'object_repr',
'change_message')
search_fields = ['=user__username', ]
fieldsets = [
(None, {'fields':()}),
]
def __init__(self, *args, **kwargs):
super(LogEntryAdmin, self).__init__(*args, **kwargs)
self.list_display_links = (None, )
Это своего рода микс между обоими ответами.
Если вы просто сделаете самостоятельно. list_display_links = ()
покажет ссылку, так или иначе, потому что код template-tag
(templatetags/admin_list.py) снова проверяет, не пуст ли список.
В более "недавних" версиях Django, так как по крайней мере 1,9, это возможно к простому, определяют добавление, изменяют и удаляют полномочия на администраторском классе. Посмотрите django администраторская документация для ссылки. Вот пример:
@admin.register(Object)
class Admin(admin.ModelAdmin):
def has_add_permission(self, request):
return False
def has_change_permission(self, request, obj=None):
return False
def has_delete_permission(self, request, obj=None):
return False
Невозможно достичь необходимого уровня контроля над представлением в обычном текстовом поле.
Если вас это устраивает, попробуйте CodeMirror или Ace (ранее skywriter и bespin ) , или Monaco (используется в MS VSCode).
Из дублирующей ветки - обязательная ссылка на википедию: http: //en.wikipedia.
Нет поддерживаемого способа сделать это.
Глядя на код, кажется, что он автоматически устанавливает ModelAdmin.list_display_links
в первый элемент, если вы ничего не устанавливаете. Таким образом, самым простым способом может быть переопределение метода __ init __
в вашем подклассе ModelAdmin
, чтобы отключить этот атрибут при инициализации:
class HitAdmin(admin.ModelAdmin):
list_display = ('user','ip','user_agent','hitcount')
search_fields = ('ip','user_agent')
date_hierarchy = 'created'
def __init__(self, *args, **kwargs):
super(HitAdmin, self).__init__(*args, **kwargs)
self.list_display_links = []
Это сработает после очень беглого теста. Я не могу гарантировать, что это не повредит что-либо еще где-либо или что он не будет нарушен будущими изменениями в Django.
Редактировать после комментария :
Нет необходимости исправлять исходный код, это сработает:
def __init__(self, *args, **kwargs):
if self.list_display_links:
unset_list_display = True
else:
unset_list_display = False
super(HitAdmin, self).__init__(*args, **kwargs)
if unset_list_display:
self.list_display_links = []
Но я очень сомневаюсь, что какой-либо патч будет принят в Django, поскольку это нарушает то, что код явно делает в данный момент.
В вашей модели администратор установил:
list_display_links = (None,)
Это должно сработать. (В любом случае работает в 1.1.1.)
Ссылка на документы: list_display_links