django - Django methodSerializer 不返回绝对图像 url
问题描述
序列化程序.py
class PostImageSerializer(serializers.ModelSerializer):
class Meta:
model = PostImage
fields = ('id', 'post', 'post_img')
class PostSerializer(serializers.ModelSerializer):
postimg_set = serializers.SerializerMethodField('get_postimg_set')
editor = UserSerializer()
class Meta:
model = Post
fields = ('id', 'title', 'content', 'editor', 'postimg_set', 'created_at')
def get_postimg_set(self, obj):
a = PostImage.objects.filter(post = obj.id)
print(a[0].post_img)
return PostImageSerializer(a, many=True).data
模型.py
from django.db import models
import os, uuid, datetime
from apps.account.models import *
from django.utils import timezone
def img_upload(instance, filename):
ext = filename.split('.')[-1]
now = datetime.datetime.now()
path = "media/static/post/{}".format(instance.post.id)
format = uuid.uuid4().hex + "_" + filename
return os.path.join(path, format)
class Post(models.Model):
title = models.CharField('제목', null=False, blank=False, max_length=40)
content = models.TextField('내용', null=False, blank=False)
editor = models.ForeignKey(User, default = 1, null=False, blank=False, verbose_name="작성자", on_delete=models.CASCADE)
created_at = models.DateTimeField(default=timezone.localtime())
class Meta:
verbose_name = '게시글'
verbose_name_plural = '게시글'
def __str__(self):
return self.title
class PostImage(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE)
post_img = models.ImageField(upload_to=img_upload)
class Meta:
verbose_name = "게시글 이미지"
verbose_name_plural = "게시글 이미지"
def __str__(self):
return str(self.post.title) + "이미지"
猜 postimg_set = serializers.SerializerMethodField('get_postimg_set') 不返回图像的绝对 URL。当我使用 UserSerializer() 时,它返回用户个人资料图像的绝对图像 url。
寻求帮助。谢谢
解决方案
在您的urls.py
中,添加:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
-- closed--
推荐阅读
- email - SendGrid smtp 不发送到 Yahoo、AOL 或 Verizon.net 但发送到 Gmail?
- python - Pandas:当具有多种日期格式时,如何将系列格式化为日期时间
- artifactory - x509:由未知权威 CI CD 使用 Azure DevOps 签署的证书
- storybook - Storybook + monorepo:在故事中显示包版本
- c# - virtualbox 网络上的 ASP .NET 连接字符串
- user-interface - 是否有必要为应用程序创建不同的屏幕尺寸和密度 xml?最好的方法
- javascript - Highcharts 在放大时打印完整的图表
- php - 在工厂类中切换
- mysql - mysql 5.6将日期时间舍入到最近的分钟
- python-3.x - 带有 SqlAlchemy Rasies UnmappedInstanceError 的 Pydantic 数据类