settings.pyDRF(django-rest-framework)和TokenAuthentication,如何基於Token自動填充json字段?
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.AllowAny',
),
}
serializers.py
class UserSerializer(serializers.ModelSerializer):
related_postwriter = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
class Meta:
model = User
fields = ('id', 'username', 'email', 'related_postwriter')
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ('id', 'created_date', 'author', 'text', 'image')
def create(self, validated_data):
validated_data['author'] = self.context['request'].user
return super(PostSerializer, self).create(validated_data)
models.py
class Post(models.Model):
author = models.ForeignKey(User, related_name='related_postwriter')
text = models.TextField(blank = False)
image = models.ImageField(null = False, blank = False, upload_to='images')
created_date = models.DateTimeField(
default=timezone.now
)
def __str__(self): # __unicode__ on Python 2
return self.text
views.py
class PostViewSet(viewsets.ModelViewSet):
serializer_class = PostSerializer
permission_classes = [IsAuthenticated]
queryset = Post.objects.all()
我必須爲json請求和json響應制作這個RESTful api。 當我爲Android應用程序使用這個RESTful api時,我瞭解到我登錄並從RESTful api獲取Token,然後使用Token通過Header將數據發佈到RESTful api。
由於郵遞員捕獲,
我必須填寫 「作者」: 「數量」 上的身體。我認爲這個數字意味着用戶在我的RESTful api上註冊訂單。從上面捕獲,該作者是我的RESTful API的第一個用戶。
如果我做了作者字段爲空,它返回
{
"author": [
"This field is required."
]
}
我如何填寫「作者」部分自動使用令牌(不使用令牌或其他方式)?
如何獲得json響應
"author":"some alphabet name readable"
而不是"author":"1 or 2 like number"
作爲捕獲。我想要形式如"author":"stackoverflowman"
。
謝謝,對不起,還有一個問題,正如你的答案,它返回'「作者」:{ 「ID」:1, 「用戶名」: 「ghdalsrn」, 「電子郵件」: 「」, 「related_postwriter」: 1, 2,]'它工作得很好,但是當我想返回只是一個領域,是,「用戶名」字段,我該怎麼辦? –
檢查編輯@ H.fate – arcegk
謝謝你的不錯的答案。 –