def clean(self): cleaned_data = super(ObjectsForm, self).clean() # check object's key key = cleaned_data["key"] if not key: cleaned_data["key"] = generate_key(self) else: # Check the key. for model in model_mapper.get_objects_models(): if model == self.instance.__class__: # Models will validate unique values of its own, # so we do not validate them here. continue try: record = model.objects.get(key=key) except Exception, e: continue error = forms.ValidationError( "The key '%(value)s' already exists in model %(model)s.", code="unique", params={ "value": key, "model": model.__name__ }) raise forms.ValidationError({"key": error})
def clean(self): super(CommonCharacterForm, self).clean() # check model and level from muddery.worlddata.dao.common_mappers import CHARACTER_MODELS try: CHARACTER_MODELS.get(key=self.model, level=self.level) except Exception, e: message = "Can not get the level data." levels = CHARACTER_MODELS.filter(key=self.model) available = [str(level.level) for level in levels] if len(available) == 1: message += " Available level: " + available[0] elif len(available) > 1: message += " Available levels: " + ", ".join(available) raise forms.ValidationError({"level": message})
if model == self.instance.__class__: # Models will validate unique values of its own, # so we do not validate them here. print("model == self.instance") continue try: record = model.objects.get(key=key) print("record: %s" % record) except Exception, e: continue error = forms.ValidationError( "The key '%(value)s' already exists in model %(model)s.", code="unique", params={ "value": key, "model": model.__name__ }) raise forms.ValidationError({"key": error}) return cleaned_data class GameSettingsForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(GameSettingsForm, self).__init__(*args, **kwargs) choices = [("", "---------")] objects = CM.WORLD_ROOMS.objects.all() choices.extend([(obj.key, obj.name + " (" + obj.key + ")")