2014-02-25 76 views
0

我正在構建一個公開REST API的Django應用程序,用戶可以通過它來查詢我的應用程序的模型。我遵循here的說明。如何獲取外鍵模型出現在Django-Serializer中?

我的兩個型號有:

  1. Django的用戶模型從django.contrib.auth
  2. 下面顯示的模型。

    class Profile(models.Model): 
        user = models.OneToOneField(User) 
    

我Serialiazers如下:

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

class ProfileSerializer(serializers.HyperlinkedModelSerializer): 
    class Meta: 
     model = Profile 
     fields = ('id', 'slug', 'user',) 

我可以看到,這是工作的時候,我打在命令行的API:

% curl -H 'Accept: application/json; indent=4' -u root:MyPassword http://127.0.0.1:3001/api/profiles/60/ 
{ 
    "id": 60, 
    "slug": "myprofile", 
    "user": "http://127.0.0.1:3001/api/users/16/" 
} 

% curl -H 'Accept: application/json; indent=4' -uroot:MyPassword http://127.0.0.1:3001/api/users/16/ 
{ 
    "url": "http://127.0.0.1:3001/api/users/16/", 
    "username": "myUser", 
    "email": "[email protected]" 
} 

我想知道是兩件事:

  1. 如何更改我的Profile的序列化程序,以便用戶的用戶名顯示在序列化的配置文件中?
  2. 我該如何公開這個API,因此即使沒有根/密碼登錄也能正常工作?
+0

同樣的問題在這裏去年發佈,解答:http://stackoverflow.com/questions/15649522 /串行化-A-模型,其-具有-A-外鍵到的django-AUTH-用戶?RQ = 1 –

回答