Я решил это самостоятельно следующим образом, я добавил в свой класс администратора RecipesAdmin класс Media, указывающий на файл сценария java и определяющий классы в массиве fieldsets:
class RecipesAdmin(admin.ModelAdmin):
fieldsets = [
("Title/Description", {"fields": ["recipe_title", "recipe_ingredients"]}),
("Ingredients sequence", {"fields": ["sequence"]}),
(None, {"fields": ["sequence2",], "classes": ("HiddenSequence",)}),
("Photo and Create Date", {"fields": ["recipe_photo", "recipe_created"]})
]
class Media:
js = ('main/JS/ShowOrHideSequence.js',)
Как вывидите, поле sequence2 имеет класс HiddenSequence, это позволит мне контролировать все с помощью JavaScript, код javascript следующий:
$(function($) {
$(function() {
var sequence = $('#id_sequence'), verified = $('.HiddenSequence');
function toggleVerified(value, HiddenSeq) {
if (value !== '') {
HiddenSeq.show();
} else {
HiddenSeq.hide();
}
}
// show/hide on load based on pervious value of selectField
toggleVerified(sequence.val(), verified);
// show/hide on change
sequence.change(function() {
toggleVerified($(this).val(), verified);
});
});
});
Обратите внимание, я нашел этот JavaScript через Интернет,не сделан мной, и, как вы можете понять, он проверяет, отличается ли значение «sequence» от «», если true, показывает sequence2, если false, скрывает его.
Файл javascript должен находиться в статической папке.