Получение ключа словаря представления Django в Javascript, но вместо того, чтобы считать его строкой, считает именем переменной
Я делаю проект на Django. В моих представлениях я отправляю данные на HTML страницы с помощью словарей. Я могу легко получить доступ к этим данным на HTML, но когда я пытаюсь получить доступ к ним на Javascript, я не могу, потому что Javascripts думает, что это имя переменной.
Например, у меня есть страница входа в систему. Если учетные данные неверны, я отправляю пользователя на ту же страницу и сообщаю ему, что имя пользователя или пароль неверны. Я хочу сохранить ранее написанное имя пользователя на форме, чтобы человеку нужно было только переписать пароль. Я отправляю имя пользователя из представления в Javascript, но не могу получить к нему доступ
Мой код представления:
def login_form(request):
assert isinstance(request, HttpRequest)
if 'username' and 'password' in request.POST:
user = request.POST['username']
passw = request.POST['password']
if rightcredentials(user,passw):
tparams = {
'message': 'login successful',
}
return render(request, 'about.html', tparams)
else:
tparams = {
'login' : 'failure1',
'username_info' : user
}
return render(request, 'login_form.html', tparams)
Код Javascript:
{% if login == 'failure1' %}
<form action="." method="post">
{% csrf_token %}
<div class="program-info">
<h3 class="program-title">Sign Into Your Account</h3>
<p>Wrong Username or password</p>
<div class="form-group">
<input type="text" value="" class="form-control" name="username" id="username" placeholder="Username">
</div>
<div class="form-group">
<input type="password" class="form-control" name="password" placeholder="Password">
</div>
<button type="submit" class="btn btn-primary">Log In</button>
</div>
</form>
<script type="text/javascript">
{% autoescape off %}
var paramvalue = {{ username_info }}
{% endautoescape %}
document.getElementById("username").value = paramvalue;
</script>
{%endif%}
После вставки имени пользователя: 'pedro' и неправильного пароля в форму я получаю следующую ошибку:
Uncaught ReferenceError: pedro is not defined
Есть ли способ доступа к строке username_info или способ преобразования имени переменной в строку?
Обратите {{ }} в кавычки
{% autoescape off %}
var paramvalue = "{{ username_info }}"
{% endautoescape %}