@Lepilov

Как реализовать создание нового объекта в popup окне с инициализацией значения в форме?

Вопрос скорее по JavaScript.
Используя туториал реализую возможность добавлять новые сущности (связи ForeignKey и ManytoMany) в popup окне. В туториале используется одна кнопка добавить , я же пробуя с двумя.
5d9da69c87191808835549.png

В html форму добавил такой код
{form.field1}
		<a class="text-success" href="/project/create" id="add_project" onclick="return showAddPopup(this);"><i class="fas fa-plus fa-lg"></i></a>

		{{ form.field2 }}
		<a class="text-success" href="/technology/create" id="add_technology" onclick="return showAddPopup(this);"><i class="fas fa-plus fa-lg"></i></a>


Скрипт такой
<script type="text/javascript">

function showAddPopup(triggeringLink) {
    var name = triggeringLink.id.replace(/^add_/, '');
    href = triggeringLink.href;
    var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes');
    win.focus();
    return false;
}
function closePopup(win, newID, newRepr, id) {
    $(id).append('<option value=' + newID + ' selected >' + newRepr + '</option>')
    win.close();
}

</script>


В чем проблема:
когда я добавляю Project, popup окно закрывается и редиректится назад в форму с уже выбранным новым значением в выпадающем окне Project. В Бд тоже все норм добавилось. Но когда я добавляю Technology used on the project, то новое значение инициализируется тоже в первом окне (Project) но при этом в БД сохраняется правильно, то есть хромает именно визуальное отображение. Если я обновлю страницу с формой то в выпадашке Technology это значение уже можно будет увидеть и выбрать.

Очень надеюсь, что понятно донес суть. Я не знаю JS поэтому к сожалению даже такую проблему не могу устранить
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ответы на вопрос 1
tumbler
@tumbler Куратор тега Django
бекенд-разработчик на python
Так у вас попап для проекта и для технологии ничем друг от друга не отличаются. Нужно или разные калбеки использовать или доп аргументы передавать, чтобы отличить какой из попапов закрылся.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы