2015-02-10 66 views
2

我正在使用rest_auth和rest_framework。如何自定义由rest-auth/user返回的JSON数据

当我访问URL http://localhost:8080/rest-auth/user/ GET我得到以下JSON数据

{ 
    "username": "latest", 
    "email": "[email protected]", 
    "first_name": "some first name", 
    "last_name": "some last name" 
} 

问题

我需要什么,以定制返回JSON数据呢?我不希望它返回first_namelast_name

试图

我试图创建文件名为serializers.py并添加以下到它,但它是没有任何效果。

from rest_framework import serializers 
from .models import * 
import re 

class UserSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = User 
     fields = ('username', 'email') 

urls.py包含以下

url(r'^$', TemplateView.as_view(template_name="home.html"), name='home'), 
url(r'^signup/$', TemplateView.as_view(template_name="signup.html"), 
    name='signup'), 
url(r'^email-verification/$', 
    TemplateView.as_view(template_name="email_verification.html"), 
    name='email-verification'), 
url(r'^login/$', TemplateView.as_view(template_name="login.html"), 
    name='login'), 
url(r'^password-reset/$', 
    TemplateView.as_view(template_name="password_reset.html"), 
    name='password-reset'), 
url(r'^password-reset/confirm/$', 
    TemplateView.as_view(template_name="password_reset_confirm.html"), 
    name='password-reset-confirm'), 
# 
url(r'^user-details/$', 
    TemplateView.as_view(template_name="user_details.html"), 
    name='user-details'), 
url(r'^password-change/$', 
    TemplateView.as_view(template_name="password_change.html"), 
    name='password-change'), 


# this url is used to generate email content 
url(r'^password-reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', 
    TemplateView.as_view(template_name="password_reset_confirm.html"), 
    name='password_reset_confirm'), 

url(r'^rest-auth/', include('rest_auth.urls')), 
url(r'^rest-auth/registration/', include('rest_auth.registration.urls')), 
url(r'^account/', include('allauth.urls')), 
url(r'^admin/', include(admin.site.urls)), 

回答

0

您可以在串行使用exclude

class UserSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = User 
     exclude = ('first_name', 'last_name')