È possibile ottenere i dati request.user in una classe di modulo? Voglio pulire un indirizzo e-mail per assicurarmi che sia univoco, ma se è l'indirizzo e-mail degli utenti attuali dovrebbe passare.ottenere i dati di richiesta nel modulo Django
Questo è quello che attualmente ho che funziona alla grande per la creazione di nuovi utenti, ma se voglio modificare un utente mi imbatto nel problema della loro e-mail non convalidare, perché si presenta già come preso. Se potessi verificare che è la loro email usando request.user.email, allora sarei in grado di risolvere il mio problema, ma non sono sicuro di come farlo.
class editUserForm(forms.Form):
email_address = forms.EmailField(widget=forms.TextInput(attrs={'class':'required'}))
def clean_email_address(self):
this_email = self.cleaned_data['email_address']
test = UserProfiles.objects.filter(email = this_email)
if len(test)>0:
raise ValidationError("A user with that email already exists.")
else:
return this_email
L'esempio di codice è migliore in questa risposta che nel mio, quindi ho eliminato il mio e lo ha svalutato, anche se vorrete un == anziché = nella clausola if nel metodo clean_email_address. – Prairiedogg
corretto. Grazie per averlo preso :) – elo80ka
> Si noti che è necessario passare request.POST come argomento della parola chiave, poiché il costruttore si aspetta 'utente' come primo argomento posizionale. questo è specificamente il motivo per cui non si dovrebbero mescolare gli argomenti parola chiave (cioè, facoltativo) con ** kwargs. Invece, la funzione di costruzione non dovrebbe avere utente e deve semplicemente metterla come prima riga: utente = kwargs.pop ('utente') se 'utente' in kwargs Altro – jorelli