@EnotShow

Как установить дефолтное value для форм django?

Я нагуглил что это можно сделать через аргумент initial, но в моем случае это почему-то не работает.
Код:
spoiler
# model
class UpdateUserDataForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ['phone', 'address']

# view
@login_required
def checkout(request):
    user_phone = request.user.phone
    user_address = request.user.address
    data_form = UpdateUserDataForm(
        request.POST,
        instance=request.user,
        initial={'phone': user_phone, 'address': user_address}
    )
    context = {'form': data_form, 'phone': user_phone, 'address': user_address}

    if request.method == 'POST':
        if data_form.is_valid():
            data_form.save()
            return redirect('home')
        else:
            return render(request, 'cart/checkout.html', context=context)

    return render(request, 'cart/checkout.html', context=context)

# html
{% extends 'pizza/base.html' %}
{% load static %}
{% block content %}
    <h3>Оставьте ваш номер телефона и адрес доставки. Мы свяжемся с вами в течении 10 минут !</h3>
    <form method="post" enctype="multipart/form-data">
        {% csrf_token %}
        <p>
            <label>Номер телефона: </label>
                {{ form.phone }}
        </p>
        <p>
            <label>Адрес доставки: </label>
                {{ form.address }}
        </p>
        <input type="submit" value="Заказать">
    </form>
{% endblock %}

Вывод:
6298fd403e111503677514.png
Что я делаю не правильно ?
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 1
@bacon
1. initial тут не нужен
2. зачем ты в UpdateUserDataForm переопределяешь описание полей phone и address
3. форма для вывода и при записи должна инициализировать по разному
Уже какой раз говорю, читай доки https://docs.djangoproject.com/en/4.0/topics/forms... и
https://docs.djangoproject.com/en/4.0/topics/forms...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы