Czy można uzyskać dane request.user w klasie formularza? Chcę wyczyścić adres e-mail, aby upewnić się, że jest unikalny, ale jeśli jest to aktualny adres e-mail użytkownika, powinien on przejść.pobierz dane żądania w Django z formularza
To jest to, co aktualnie mam, który działa świetnie do tworzenia nowych użytkowników, ale jeśli chcę edytować użytkownika, napotkam problem z jego e-mailem, który nie jest sprawdzany, ponieważ pojawia się jako już zajęty. Gdybym mógł sprawdzić, czy to jest ich adres e-mail za pomocą request.user.email, to będę w stanie rozwiązać mój problem, ale nie jestem pewien, jak to zrobić.
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
Przykładowy kod jest lepszy w tej odpowiedzi niż w moim, więc usunąłem i przeszedłem tę, chociaż będziesz potrzebował = = zamiast = w klauzuli if w metodzie clean_email_address. – Prairiedogg
Naprawiono. Dzięki za złapanie go :) – elo80ka
> Pamiętaj, że powinieneś przekazać request.POST jako argument słowa kluczowego, ponieważ Twój konstruktor oczekuje "użytkownika" jako pierwszego argumentu pozycyjnego. to jest właśnie dlatego nie należy mieszać argumentów słów kluczowych (to znaczy opcjonalnych) z ** kwargs. Zamiast tego konstruktor nie powinien mieć użytkownika i po prostu umieścić go jako pierwszą linię: użytkownik = kwargs.pop ("użytkownik"), jeśli "użytkownik" w kwargs else Brak – jorelli