2022-11-02 23:52:28 +01:00
|
|
|
from django import forms
|
2022-11-06 15:19:21 +01:00
|
|
|
from django.core.exceptions import ValidationError
|
2022-11-02 23:52:28 +01:00
|
|
|
|
|
|
|
from party.models import Party
|
|
|
|
|
|
|
|
|
|
|
|
class PartyForm(forms.ModelForm):
|
|
|
|
class Meta:
|
|
|
|
model = Party
|
2022-11-06 15:19:21 +01:00
|
|
|
fields = ["name", "invited_characters"]
|
|
|
|
|
|
|
|
def clean_invited_characters(self):
|
|
|
|
invited = self.cleaned_data["invited_characters"]
|
|
|
|
if not self.instance:
|
|
|
|
return invited
|
|
|
|
members = self.instance.characters.all()
|
|
|
|
for character in invited:
|
|
|
|
if character in members:
|
|
|
|
self.add_error(
|
|
|
|
"invited_characters",
|
|
|
|
ValidationError(f"{character} is already a group member."),
|
|
|
|
)
|
|
|
|
return invited
|