Recuperar un pk en los formularios
def get_form_kwargs(self):
views.py
class CodeVerificationView(FormView):
template_name = 'users/verification.html'
form_class = VerificationForm
success_url = reverse_lazy('users_app:user-login')
def get_form_kwargs(self):
kwargs = super(CodeVerificationView, self).get_form_kwargs()
kwargs.update({
'pk': self.kwargs['pk'],
})
return kwargs
def form_valid(self, form):
#
User.objects.filter(
id=self.kwargs['pk']
).update(
is_active=True
)
return super(CodeVerificationView, self).form_valid(form)
forms.py
def __init__(self, pk, *args, **kwargs):
class VerificationForm(forms.Form):
codregistro = forms.CharField(required=True)
def __init__(self, pk, *args, **kwargs):
self.id_user = pk
super(VerificationForm, self).__init__(*args, **kwargs)
def clean_codregistro(self):
codigo = self.cleaned_data['codregistro']
if len(codigo) == 6:
# verificamos si el codigo y el id de usuario son validos:
activo = User.objects.cod_validation(
self.id_user,
codigo
)
if not activo:
raise forms.ValidationError('el codigo es incorrecto')
else:
raise forms.ValidationError('el codigo es incorrecto')
urls.py
path(
'user-verification/<pk>/',
views.CodeVerificationView.as_view(),
name='user-verification',
),
Última modificación: 01 Jan 2023 19:50
No hay comentarios aún
Sé el primero en comentar este artículo