как динамически изменить комментарий ModelForm в django - PullRequest
0 голосов
/ 16 января 2020

Мне нужно просмотреть комментарий ModelForm с полями = ('name', 'email', 'body'). Когда пользователь проходит проверку подлинности, поле «имя» должно быть request.user.username, а «email» должно быть request.user.email. Если пользователь не аутентифицирован, он должен указать свое имя и адрес электронной почты.

Какое решение я могу использовать здесь. как я могу найти информацию по этому вопросу?

1 Ответ

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

В вашем views.py

def comment_new(request):
if request.method == "POST":
    form = CommentForm(request.POST)
    if form.is_valid():
        comm = form.save(commit=False)
        if request.user.is_authenticated:
            comm.username = request.user.username
            comm.email = request.user.email
        comm.save()
        return redirect('somewhere')
else:
    form = CommentForm()
return render(request, 'path_to_html', {'form': form})

Затем в forms.py вы можете сделать поля имени и адреса электронной почты необязательными.

Также в html, если у вас есть авторизационный пользователь, просто сделайте не показывать ему имя и адрес электронной почты

...