JavaScript-запрос для получения модели формы из Django
В качестве моего первого самостоятельного проекта, для курса web dev я создаю "клон" известного менеджера паролей. Это одностраничное веб-приложение на Django, использующее ванильный JavaScript для асинхронных запросов и управления контентом.
Предисловие:
Я создал модель для таблицы экземпляра Login
class Login(models.Model):
id = models.BigAutoField(primary_key=True)
title = models.CharField(max_length=80, blank=False, null=False)
username = models.CharField(max_length=80, null=True, blank=True)
password = models.CharField(max_length=80, null=True, blank=True)
notes = ...
folder = ....
И из Django я смог передать его на страницу как пустую ModelForm с правильным форматированием
class LoginForm(ModelForm):
class Meta:
model= Login
fields = ('title', 'username', 'password', 'note', 'folder', 'protected', 'favorite',)
widgets = {
'password': PasswordInput,
'note': Textarea(attrs={'rows':6, 'placeholder':"Add notes here..."}),
}
он отправляет и сохраняет его правильно.
Проблема
Сейчас я пытаюсь добавить возможность редактировать сохраненную форму без перезагрузки, поэтому мне нужно создать текстовую область для каждого поля, предварительно скомпилированную с текущим значением для отправки.
Я начал пытаться построить то же самое из JavaScript при нажатии на кнопку, создавая шаблон для каждого из 7 полей, которые у него есть , и вводя текущее значение как значение textarea, например
const titlearea = document.createElement('TEXTAREA');
uriarea.setattribute('name', 'title');
titlearea.setAttribute('maxlength', 80);
titlearea.setAttribute('rows', 1);
titlearea.style.resize = "none";
titlearea.value = data.title;
template.querySelector('.tag-title').append(titlearea);
// and this is just ONE
Вопрос:
Можно ли из JavaScript отправить запрос в Django, чтобы LoginForm
был передан как JsonResponse ответ?
Например, послать запрос fetch GET для формы и получить обратно пустой шаблон с правильным форматированием для maxlength и т.д.?
я получаю TypeError: 'dict' object is not callable
или TypeError: Object of type EntryForm is not JSON serializable
на основе того, что я смог додуматься сделать.
Мне не нужно, чтобы он был сериализован, мне нужно получить HTML форму, но я не могу найти как это сделать или возможно ли это
Это мой самый большой проект, и я только начинающий как в Django, так и в Javascript, поэтому я избегал React и любой другой фреймворк
Оказалось, что response.text()
был тем ответом, который я искал