Администратор Django, скрыть + знак плюс в специальном поле Foreignkey - PullRequest
6 голосов
/ 30 декабря 2011

Я хочу скрыть знак плюс + в некоторых полях посторонних ключей определенной модели в интерфейсе django-admin. это возможно?

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 30 декабря 2011

+ добавляется, когда модель этого внешнего ключа также может быть добавлена ​​в администраторе, и основана на разрешениях, которые пользователь имеет для этой модели. Если пользователь не сможет добавить эти типы моделей, переопределите has_add_permission на внешнем ключе ModelAdmin (т. Е. Тот, который позволит вам добавить знак плюс) и верните False для соответствующих условий. + исчезнет для любого пользователя, которому запрещен.

2 голосов
/ 30 декабря 2011

Если вы просто хотите скрыть это в косметических целях, я бы использовал сценарий Javascript, который скрывает этот знак «+».

Вы можете добавить собственные источники Javascript в Admin Modelform, используя внутренний класс Media., как описано в документах .Примерно так:

class MyModelAdmin(admin.ModelAdmin):
    class Media:
        js = ("js/hide_myfield_addlink.js",)

Источник Javascript будет выглядеть примерно так:

/* file: hide_myfield_addlink.js */
django.jQuery(document).ready(function() {
    django.jQuery("#add_id_myfield").hide();
});

С другой стороны, если эти пользователи-администраторы никогда не смогут добавить такую ​​модель,не дать им разрешение на добавление тех.Тогда эти ссылки для добавления никогда не будут отображаться.

...