Синтаксис языка шаблонов Django - PullRequest
0 голосов
/ 30 ноября 2018

Я изучаю django, и я заблокирован из-за синтаксической ошибки шаблона.

У меня есть эта функция в моих views.py:

def AccountUpdateView(request):
    template_name='portal/accountupdate.html'
    context = {"forms":UserForm}
    return render(request,template_name,context)

Есть мой шаблон:

    <form action="/account/update/" method="POST">
        <ul>
    {% csrf_token %}
    {% for form in forms %}
        <li>{{form.label}}
            <input type="text" name="{{form.name}}" maxlength="32" required="" id="id_{{form.name}}" value="{{PLEASE HELP ME !!!}}">
        </li>
    {%endfor%}
    </ul>
    <input type="submit" value="Metre a jour" />
    </form>

Что ж, я пытаюсь получить значение каждой формы в моем шаблоне от текущего зарегистрированного пользователя, известного в django по вызову {{user}}, и я бы автоматически разместилзначения каждой формы.

Я думаю, что решение состоит в том, чтобы использовать form.name (для примера случая 'username'), а в значении вызвать что-то вроде этого:

user.form.username

Это не работает, и я знаю, что я мечтала надеяться, что этот экзотический вызов не сработает ...

Если есть какое-либо решение:)

Спасибо тебе!

1 Ответ

0 голосов
/ 30 ноября 2018

Ты не должен этого делать вообще.Django автоматически выведет все поле, если вы спросите его.

Для начала используйте правильные имена для ваших объектов.Во-вторых, если вы хотите предварительно заполнить форму данными текущего пользователя, сделайте это в представлении.Обратите внимание, вам также нужно иметь дело с опубликованными данными:

def AccountUpdateView(request):
    template_name='portal/accountupdate.html'
    if request.method == 'POST':
        form = UserForm(request.POST, instance=request.user)
        if form.is_valid():
            form.save()
            return redirect('/')
    else:
        form = UserForm(instance=request.user)
    context = {"form":form}
    return render(request,template_name,context)

Теперь используйте правильные значения и атрибуты в шаблоне:

{% for field in form %}
    <li>{{ field.label_tag }}
        {{ field }}
        {{ field.errors }}</li>
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...