Django управление различными формами на одной странице в view.py - PullRequest
0 голосов
/ 07 января 2020

В моем проекте мне нужно управлять 3 различными формами в моем файле логина html, один для входа в систему classi c, один для регистрации пользователя и один для регистрации компании (все в одном логине. html файл) Я создаю в своем forms.py три разных класса Modelforms для управления различными моделями, но теперь у меня есть только URL-адрес, и в моем views.py я не знаю, как сказать, для какой формы получены данные и как сделать связывание и разработку :

def user_login(request, log_err=None):
    context = RequestContext(request)

    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']

        return HttpResponseRedirect('/login/log_error')

    else:
        return render(request, 'login.html', {'l_err': log_err})

Как я могу выделить сохраненные данные в правильную модель, если они взяты из формы 1,2 или 3?

Огромное спасибо заранее

1 Ответ

1 голос
/ 07 января 2020

Вы можете установить разные имена для каждой кнопки отправки, а затем проверить, какая из них нажата, а затем передать данные в соответствующую форму:

<form method="POST">
    { fields ... }
    <button type="submit" name="company">Rgister Company</button>
</form>

<form method="POST">
    { fields ... }
    <button type="submit" name="register">Rgister</button>
</form>

<form method="POST">
    { fields ... }
    <button type="submit" name="login">Login</button>
</form>

И затем проверить данные в представлении:

if request.method=='POST':
    if 'login' in request.POST:
        # Login form
    elif 'register' in request.POST:
        # Register form
    elif 'company' in request.POST:
        # Company registration form
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...