我正在学习django rest框架。我想在JSON中获得作者的全名,而不是ID,下面是
GET request
,如果有的话,有办法吗?从管理站点创建了
Articles
。我试图用
article.author
在前台获得该值。
反应组件的渲染功能。
article.author_id
显示空白,
article.author_id
显示作者
id
为
integer
。我应该返回什么来显示作者的全名?
render() {
return (
<Fragment>
<h2>Articles</h2>
this.props.articles.map(article => (
<div className="card" key={article.id}>
<div className="card-body">
<div className="card-title"> <b>{article.article_title}</b></div>
<div className="card-text"> {article.description}</div>
<div> Author: {article.author_id}</div>
<div className="card-footer text-muted"> Created date: {article.created_at}</div>
<br></br>
</Fragment>
应用程序的模型类,包含字段
#model class
from django.db import models
class Author(models.Model):
first_name = models.CharField(max_length=40)
last_name = models.CharField(max_length=40)
def __str__(self):
return '%s %s' % (self.first_name, self.last_name)
class Articles(models.Model):
article_title = models.CharField(max_length=100, unique=True)
description = models.TextField(max_length=500)
created_at = models.DateTimeField(auto_now_add=True)
author = models.ForeignKey(Author, on_delete=models.CASCADE, blank=True)
def __str__(self):enter code here
return self.article_title
from rest_framework import serializers
from .models import Lead, Author, Articles
# Author Serializer
class AuthorSerializer(serializers.ModelSerializer):
class Meta:
model = Author
fields = '__all__'
#Article serializer
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Articles
fields = '__all__'
包含Viewset的API类,用于查看api调用。
from .models import Author,Articles
from rest_framework import viewsets, permissions
from .serializers import AuthorSerializer, ArticleSerializer
#Author Viewset
class AuthorViewset(viewsets.ModelViewSet):
permission_classes = [permissions.AllowAny]
queryset = Author.objects.all()
serializer_class = AuthorSerializer
#Article Viewset
class ArticlesViewset(viewsets.ModelViewSet):
permission_classes = [permissions.AllowAny]
queryset = Articles.objects.all()
serializer_class = ArticleSerializer