Django 1.5 admin inline extra
у меня есть несколько моделей с большим количеством строк. Поскольку не все необходимы для каждого объекта, я объявил встроенную модель с extra = 0
Так что маленький add +
появился на inline.
однако это, похоже, больше не работает в django 1.5. Если extra = 0
установлен, встроенный больше не редактируется.
есть ли способ получить поведение 1.4 в 1.5?
Пример Кода:
class ModelInline(admin.StackedInline):
model = MyModel
extra = 0
class OtherModelAdmin(admin.ModelAdmin)
inlines = [ModelInline]
admin.site.register(OtherModel, OtherModelAdmin)
Edit (некоторые экраны):
Джанго 1.4:
Django 1.5:
(Hinzufügen == add)
3 ответов
Это уже произошло раньше.
The new javascript made this impossible because the "Add Another" button
was controlled by max_num, and ignored a value of 0.
The javascript ignored a value of 0 because max_num has a default value of 0,
and all the code using it had taken to equating max_num = 0 with being "off".
So you can't actually have a maximum of 0. It's not possible.
существует патч, созданный Габриэлем Херли, чтобы восстановить желаемое поведение, не нарушая ничего другого. Это 3years назад, и я не знаю, работает ли он все еще для Django 1.5. Просто попробуйте:)
https://code.djangoproject.com/attachment/ticket/13023/13023_inlines_patch.diff
вот билет на ту же ошибку (3 года назад):
Я столкнулся с той же проблемой, потому что у меня был статический контент администратора в каталоге, который был вне установки django. Копирование Джанго 1.5 статический контент с Django/ВНО/администратора/статический/админ/и JS/ в STATIC_ROOT/админ/JS и исправили проблему.
лучшим решением было бы переопределить метод get_extra самого встроенного. Это работает в Django 1.9, хотя я не могу сказать, для более ранних версий