示例#1
0
                permissions=[CurrentUserPermissions]),
    GroupMetaData: dict(permissions=[CurrentUserPermissions]),
    User: dict(many_to_many=True,
               depth=1,
               permissions=[CurrentUserPermissions]),
    UserMetaData: dict(permissions=[CurrentUserPermissions]),
}

# Configuration par défaut
DEFAULT_CONFIG = dict(depth=1)

# Précise les filtres à appliquer sur les permissions spécifiques par utilisateur
CurrentUserPermissions.filters.update({
    User:
    lambda request: dict(id=request.user.pk),
    Group:
    lambda request: dict(user=request.user),
    UserMetaData:
    lambda request: dict(user=request.user),
    GroupMetaData:
    lambda request: dict(group__user=request.user),
})

# Désactive les listes déroulantes sur les champs de relations
disable_relation_fields(User, Group, Permission, ContentType, LogEntry, Token,
                        *MODELS)

# Création des APIs REST standard pour les modèles de cette application
router, *_ = create_api(User, Group, Permission, ContentType, LogEntry, Token,
                        *MODELS)
示例#2
0
                              api_view_with_serializer,
                              create_model_serializer, to_model_serializer)
from django.urls import path
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from rest_framework.exceptions import PermissionDenied, ValidationError
from rest_framework.generics import get_object_or_404

from fallout.enums import *  # noqa
from fallout.models import *  # noqa

# Désactive les listes déroulantes sur les champs de relations
disable_relation_fields(*MODELS)

# Création des APIs REST standard pour les modèles de cette application
router, all_serializers, all_viewsets = create_api(*MODELS)

# Serializer sans statistiques pour le personnage
BaseCharacterSerializer = create_model_serializer(
    Character, exclude=tuple(LIST_EDITABLE_STATS))


class SimpleCharacterSerializer(BaseCharacterSerializer):
    """
    Serializer simplifié pour les personnages
    """
    current_charge = serializers.FloatField()
    used_skill_points = serializers.FloatField()
    next_required_experience = serializers.IntegerField()
    previous_required_experience = serializers.IntegerField()
    required_experience = serializers.IntegerField()
示例#3
0
from common.api.serializers import CommonModelSerializer
from common.api.utils import (auto_view, create_api, disable_relation_fields,
                              to_model_serializer, create_model_serializer)
from django.urls import path
from rest_framework import serializers

from krakenapp.models import Action, Claim, Player, Territory

disable_relation_fields(Player, Action, Claim, Territory)
router, all_serializers, all_viewsets = create_api(Player, Action, Claim,
                                                   Territory)


@to_model_serializer(Claim, exclude=('current_user', ))
class ClaimSerializer(CommonModelSerializer):
    power = serializers.IntegerField()
    points = serializers.IntegerField()
    claims = serializers.IntegerField()
    player = create_model_serializer(Player,
                                     exclude=(
                                         'password',
                                         'groups',
                                         'user_permissions',
                                     ))()


@auto_view(['GET'], serializer=ClaimSerializer, many=True)
def claims_by_power(request):
    return Claim.objects.get_ordered()