Python 显示外键链接模型django中的字段
所以我用Django rest框架创建了一个API。我有一个简单的模型关系,即User->Posts。用户被链接到帖子,因为用户是帖子的作者。我只想在RESTAPI中显示与帖子相关联的用户名。如何引用作为外键链接的模型中的其他字段?如果我有一个有用户名、个人资料图片和电子邮件的用户模型,我如何在我的帖子模型中显示这些内容 下面是一个我试图用模型做的例子Python 显示外键链接模型django中的字段,python,django,api,Python,Django,Api,所以我用Django rest框架创建了一个API。我有一个简单的模型关系,即User->Posts。用户被链接到帖子,因为用户是帖子的作者。我只想在RESTAPI中显示与帖子相关联的用户名。如何引用作为外键链接的模型中的其他字段?如果我有一个有用户名、个人资料图片和电子邮件的用户模型,我如何在我的帖子模型中显示这些内容 下面是一个我试图用模型做的例子 from django.contrib.auth.models import User class Post(models.Model):
from django.contrib.auth.models import User
class Post(models.Model):
title = models.CharField(max_length=50)
content = models.TextField()
image = models.ImageField(default='default.mp4', upload_to='video_thumbnails')
videoFile = models.FileField(default='default.mp4', upload_to='videos')
date_posted = models.DateTimeField(default=timezone.now)
user = models.ForeignKey(User , #Something to get the username here, on_delete=models.CASCADE)
现在这个显示
{
"title": "HOLROYD SWIPE ACCESS(CS ROOMS)",
"content": "Yeet",
"image": "http://127.0.0.1:8000/media/video_thumbnails/Screenshot_from_2019-08-03_23-37-50.png",
"videoFile": "http://127.0.0.1:8000/media/videos/Screenshot_from_2019-08-03_23-37-52.png",
"date_posted": "2019-10-22T21:01:07Z",
"user": 1
}
我只希望它显示用户的名称,而不是用户ID,在本例中为1
我只是想让它看起来像这样
{
"title": "HOLROYD SWIPE ACCESS(CS ROOMS)",
"content": "Yeet",
"image": "http://127.0.0.1:8000/media/video_thumbnails/Screenshot_from_2019-08-03_23-37-50.png",
"videoFile": "http://127.0.0.1:8000/media/videos/Screenshot_from_2019-08-03_23-37-52.png",
"date_posted": "2019-10-22T21:01:07Z",
"user": "usernameassociatedwithpost"
}
这是我的序列化程序
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ('title', 'content', 'image', 'videoFile', 'date_posted', 'user' )
这是我的观点
class VideoList(generics.ListCreateAPIView):
queryset = Video.objects.all()
serializer_class = VideoSerializer
class VideoDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Video.objects.all()
serializer_class = VideoSerializer
如果需要更多的代码来回答这个问题,请让我知道。谢谢 您可以使用:
显示您的序列化程序。@DanielRoseman我共享了我的序列化视图和视图。还有什么我应该分享的吗?非常感谢!!这起作用了。如果我想引用其他模型中的字段,我会做同样的事情吗?
class PostSerializer(serializers.ModelSerializer):
user = serializers.SlugRelatedField(slug_field="username", queryset=User.objects.all())
class Meta:
model = Post
fields = ('title', 'content', 'image', 'videoFile', 'date_posted', 'user' )