Vylepšení odevzdávátka #13
1 changed files with 1 additions and 4 deletions
|
@ -208,11 +208,8 @@ class ProfileEditForm(forms.Form):
|
|||
prezdivka_resitele = self.cleaned_data.get('prezdivka_resitele')
|
||||
if prezdivka_resitele == '':
|
||||
return prezdivka_resitele
|
||||
try:
|
||||
Resitel.objects.get(prezdivka_resitele=prezdivka_resitele)
|
||||
if Resitel.objects.filter(prezdivka_resitele=prezdivka_resitele).exclude(osoba__user__username=self.username).count() > 0:
|
||||
raise forms.ValidationError('Přezdívka je již použita')
|
||||
zelvuska marked this conversation as resolved
Outdated
|
||||
except ObjectDoesNotExist:
|
||||
pass
|
||||
return prezdivka_resitele
|
||||
|
||||
def clean_email(self):
|
||||
zelvuska marked this conversation as resolved
Outdated
ledoian
commented
Reálně se celý try-block snaží jen imitovat podmínku „pokud přezdívka není zabraná“ – je přehlednější to vyřešit spíš něčím jako Reálně se celý try-block snaží jen imitovat podmínku „pokud přezdívka není zabraná“ – je přehlednější to vyřešit spíš něčím jako `if m.Resitel.objects.….count() > 0: raise Exception()` (ne nutně na jednom řádku a s určitě s příslušnými třídami a doplněními).
|
||||
|
|
Loading…
Reference in a new issue
Tohle velmi zní, jako že ta přezdívka prostě nejde editovat vůbec – pokud už v databázi jsem, tak tohle matchne.
?
Pokud si Alice nastaví přezdívku „Axolotl“, tak ji má v databázi. Dotaz
Restitel.objects.get(prezdivka=Axolotl)
tedy tuto přezdívku najde a celýResitelEditForm
kvůli tomu nepůjde Alici odeslat, přestože je to její přezdívka.Promiň, tvůj komentář jsem pochopil jinak. Samozřejmě tohle je špatně… Dík
Ha, já nevím, podle čeho určit, který řešitel to edituje…
A nestačí to prostě uložit a zjistit, jestli to vyšlo? (Dost možná nestačí, nemám nastudovanou interakci formů a modelů, ale kdyby to stačilo, tak je to zdaleka nejjednodušší…)
A poznáš, co selhalo? A přijde mi, že tohle by mělo být ještě v clean_…
Vyřešeno. Ten objekt má při použití nastavený username…