Beispiel #1
0
    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})
Beispiel #2
0
    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})
Beispiel #3
0
                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 + ")")