from django.contrib.auth import get_user_model from rest_framework import serializers from rest_framework_nested.relations import NestedHyperlinkedRelatedField from uncloud import AMOUNT_DECIMALS, AMOUNT_MAX_DIGITS class UserSerializer(serializers.HyperlinkedModelSerializer): balance = serializers.DecimalField(max_digits=AMOUNT_MAX_DIGITS, decimal_places=AMOUNT_DECIMALS) bill_endpoint = serializers.HyperlinkedIdentityField( view_name='user-bill-list', lookup_field='username', lookup_url_kwarg='user_pk' ) order_endpoint = serializers.HyperlinkedIdentityField( view_name='user-order-list', lookup_field='username', lookup_url_kwarg='user_pk' ) address_endpoint = serializers.HyperlinkedIdentityField( view_name='user-address-list', lookup_field='username', lookup_url_kwarg='user_pk' ) payment_method_endpoint = serializers.HyperlinkedIdentityField( view_name='user-payment-method-list', lookup_field='username', lookup_url_kwarg='user_pk' ) payment_endpoint = serializers.HyperlinkedIdentityField( view_name='user-payment-list', lookup_field='username', lookup_url_kwarg='user_pk' ) class Meta: model = get_user_model() fields = ['username', 'email', 'balance', 'maximum_credit', 'bill_endpoint', 'order_endpoint', 'address_endpoint', 'payment_method_endpoint', 'payment_endpoint'] class ImportUserSerializer(serializers.Serializer): username = serializers.CharField()