Я хочу отобразить только флажок, который пользователь должен щелкнуть, чтобы подтвердить, что уведомление было принято:
class CheckForm(forms.Form):
confirmed = forms.BooleanField(required=True)
def __init__(self, *args, **kwargs):
super(CheckForm, self).__init__(*args, **kwargs)
self.fields['confirmed'].label = 'I confirm that I have taken notice'
Проблема в том, что моя форма показывает следующую метку: "Это поле обязательный." на выходе шаблона. Это также имеет смысл, поскольку я называю эту форму так в моем views.py:
form = CheckForm(request.POST)
Есть ли обходной путь, чтобы скрыть только упомянутую метку в моем шаблоне и сохранить required = True? Простое выполнение required = False в forms.py или удаление request.POST из views.py не является решением, поскольку это поле является обязательным по определению, а «if form.is_valid ():» не проверяет, отсутствует ли request.POST
views.py
def check(request):
form = CheckForm(request.POST)
user = User.objects.get(user=request.session.get('user'))
if request.method == 'POST':
if form.is_valid():
user.token_checked = True
user.save()
messages.success(request, 'Thanks for your check-up, you are now able to login again.')
return redirect(reverse('login'))
else:
return render(request, 'check.html')
else:
if not user.token_checked:
username = str(user)
token = str(user.reset_token)
args = {
'token': token,
'username': username,
'form': form
}
return render(request, 'check.html', args)