Передача нескольких аргументов в представлении Django - PullRequest
0 голосов
/ 30 октября 2019

У меня есть дерево разных пользователей, и я хочу использовать одну функцию просмотра и три разные формы. Поэтому мне нужно передать два аргумента в user_signup представление: объект запроса и форма Class. В urls.py у меня есть следующий код

path('signup/admin/', views.user_signup(request, AdminSignupForm), name='admin_signup')

в views.py Я определил user_signup function

def user_signup(request, form, template_name='users/signup_staff.html'):
    if request.method == 'POST':
        form = form(request.POST)
        if form.is_valid():
            user = form.save()  # save function is redefined in AdminSignupForm
    else:
        form = form()
    return render(request, template_name, {'form': form})

Как я могу передать объект запроса user_signup?

1 Ответ

0 голосов
/ 30 октября 2019

Используйте третий аргумент для функции path.

path('signup/admin/', views.user_signup, {'form': AdminSignupForm}, name='admin_signup')
...