Django - Различное поведение между DEV и PROD
Я заканчиваю работу над своим первым собственным приложением Django, и у меня возникли некоторые странные проблемы, так как поведение на моем сервере отличается от поведения в моей локальной среде Dev.
Моя основная проблема связана со страницей, на которой отображаются 2 поля выбора, и кнопки, предназначенные для перемещения элементов из одного в другое с помощью функций Javascript: это работает в DEV, но не в Prod. Кроме того, отображение также отличается и выглядит странно на сервере Prod.
.
Страница предназначена для списка пользователей и добавления их в группу. Иконки предназначены для перемещения одного/всех пользователей из списка в группу и наоборот. Это прекрасно работает в DEV, но не работает в PROD.
Я начинаю с JS кода, связанного с кнопками (я также рассматриваю двойной щелчок на одном элементе для перемещения его из одной группы в другую, и он тоже не работает, поэтому он включен далее):
// Add all (from source to destination)
$('#add_all').on("click", function(e) {
e.preventDefault();
$('#id_users').find('option').removeAttr('selected');
$('#id_all_users option').each(function() {
add_option('#id_all_users', '#id_users', $(this));
$('#id_users_in_group').val($('#id_users_in_group').val() + "-" + String($(this).val()))
})
})
// Add selected (from source to destination)
$('#add_selected').on("click", function(e) {
e.preventDefault();
$('#id_users').find('option').removeAttr('selected');
let values = $('#id_all_users').val();
$('#id_all_users option').each(function() {
if ( values.includes( $(this).val() ) ) {
add_option('#id_all_users', '#id_users', $(this));
$('#id_users_in_group').val($('#id_users_in_group').val() + "-" + String($(this).val()))
}
})
})
// Add selected by double click
$("#id_all_users option").dblclick(function(e) {
e.preventDefault();
$('#id_users').find('option').removeAttr('selected');
add_option('#id_all_users', '#id_users', $(this));
$('#id_users_in_group').val($('#id_users_in_group').val() + "-" + String($(this).val()))
})
// Remove all (empty list, back to global list)
$('#remove_all').on("click", function(e) {
e.preventDefault();
$('#id_all_users').find('option').removeAttr('selected');
$('#id_users option').each(function() {
add_option('#id_users', '#id_all_users', $(this));
$('#id_users_in_group').val($('#id_users_in_group').val().replace(String($(this).val()), ""))
})
})
// Remove selected (from source to destination)
$('#remove_selected').on("click", function(e) {
e.preventDefault();
$('#id_all_users').find('option').removeAttr('selected');
let values = $('#id_users').val();
$('#id_users option').each(function() {
if ( values.includes( $(this).val() ) ) {
add_option('#id_users', '#id_all_users', $(this));
$('#id_users_in_group').val($('#id_users_in_group').val().replace(String($(this).val()), ""))
}
})
})
// Remove selected by double click
$("#id_users option").dblclick(function(e) {
e.preventDefault();
$('#id_all_users').find('option').removeAttr('selected');
add_option('#id_users', '#id_all_users', $(this));
$('#id_users_in_group').val($('#id_users_in_group').val().replace(String($(this).val()), ""))
})
Вот несколько скриншотов, демонстрирующих проблемы с отображением:
Разработка - Нет пользователя в группе

Производство - Нет пользователя в группе

Разработка - Все пользователи в группе

Производство - Все пользователи в группе

Я уже спрашивал о некоторых проблемах отображения выпадающего списка и, в данном случае, нет никаких проблем в производственной среде (btw, большое спасибо тем, кто проголосовал, не зная (это работает в prod...), не объясняя и не комментируя, где я ошибся).
Снова 2 скриншота:

