django-allauth - RESTful API return 属于用户的所有电子邮件地址

django-allauth - RESTful API return all email address belonging to a user

我正在尝试进行序列化 class,这将 return 属于特定用户的所有电子邮件地址,但我不知道如何实现,因为在 django-allauth 中, emailaddress_set 链接到 User 模型。我想要这个的原因很明确 - 我想显示一个 AJAX 表单(我正在使用 AngularJS),其中可以更改电子邮件地址。
回到正题——我在想这样的事情,但显然行不通:

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__'

这就是电子邮件地址 class 的组成 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()

希望这会奏效

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

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