50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
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()
|