2016-05-09 4 views
1

私は特定のユーザに属するすべてのメールアドレスを返すシリアライゼーションクラスを作成しようとしていますが、それを達成する方法はわかりません。django-allauthemailaddress_setは、Userモデルにリンクされています。私がこれを望むのは明らかです - 私はAJAXフォーム(私はAngularJSを使用しています)を表示したい場合は、Eメールアドレスを変更することができます。
トピックに戻る - 私はこのような何かを考えていたが、明らかにそれは動作しません:django-allauth - RESTful APIは、ユーザに属するすべてのメールアドレスを返します

from django.contrib.auth import get_user_model 
from rest_framework import serializers 

UserModel = get_user_model() 

class UserSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = UserModel 
     fields = '__all__' 

class EmailSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = UserModel.emailadress_set 
     fields = '__all__' 

そして、これは、メールアドレスのクラスがdjango-allauthで構成されてい方法です:

class EmailAddress(models.Model): 

    user = models.ForeignKey(allauth_app_settings.USER_MODEL, 
          verbose_name=_('user')) 
    email = models.EmailField(unique=app_settings.UNIQUE_EMAIL, 
           max_length=254, 
           verbose_name=_('e-mail address')) 
    verified = models.BooleanField(verbose_name=_('verified'), default=False) 
    primary = models.BooleanField(verbose_name=_('primary'), default=False) 

    objects = EmailAddressManager() 

答えて

2

・ホープこれは動作します

class EmailSerializer(serializers.ModelSerializer): 
    user_info = serializers.RelatedField(source='usermodel', read_only=True) 

    class Meta: 
     model = EmailAddress 
     fields = ('id', 'email', 'user_info') 
+0

クラスのおかげで、それは 'user_info'フィールドなしでも動作します! – MikiSoft

関連する問題