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')
我正在尝试进行序列化 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')