Exemplo n.º 1
0
def setsetting(user, name, value):
    # this makes sure it exists
    setting = register.get(name)
    encoded = setting.encode(value)
    if value == setting.default():
        # setting is default
        # using filter to avoid problems when setting does not exist
        # TODO: check if 'filter' instead of 'get' is faster
        UserSetting.objects.filter(name=name, user=user).delete()
        return True  # succesfully saved (by deleting)
    try:
        # TODO: use update here instead
        obj = UserSetting.objects.get(name=name, user=user)
    except UserSetting.DoesNotExist:
        obj = UserSetting(name=name, user=user, value=encoded)
        obj.save()
    else:
        obj.value = encoded
        obj.save()
    return True  # succesfully saved new value