如何像imagesapi一样存储图像

2024-03-29 11:19:06 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,我的创建简单成员模型已经搜索了好几个地方,直到现在我还没有弄清楚如何将我的图像目录存储在我的图像字段旁边

class Member(models.Model):
with open(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))+'/api/data/states.json') as s:
    states_json = json.load(s)
    STATES = [(str(state["nome"]), str(state["sigla"])) for state in states_json]

name = models.CharField(max_length=100, null=True, blank=True, verbose_name='Nome')
image = models.ForeignKey(
    "wagtailimages.Image",
    blank=False,
    null=True,
    related_name="+",
    on_delete=models.SET_NULL,
    verbose_name='Imagem do membro',
)
role = models.CharField(max_length=35, null=True, blank=True, verbose_name='Cargo')
city = models.CharField(max_length=30, null=True, blank=True, verbose_name='Cidade')
state = models.CharField(
    verbose_name='Estado',
    max_length=19,
    choices=STATES,
    default=('SP'),
)
created = models.DateField(default=timezone.now, verbose_name='Atualizado')
modified = models.DateField(default=timezone.now, verbose_name='Modificado')

panels = [
    FieldPanel("name"),
    ImageChooserPanel("image"),
    FieldPanel("role"),
    FieldPanel("city"),
    FieldPanel("state"),
    FieldPanel("created"),
    FieldPanel("modified"),
]

def __str__(self):
    return self.name

class Meta:
    verbose_name = 'Membro'
    verbose_name_plural = 'Membros'  

这正常工作,但如何存储像WagtailImagesAPI这样的图像信息

例如:

"detail_url": "http://localhost/api/v2/images/2/",
"download_url": "/media/original_images/l8GlI3V.jpg"

这是来自API的myJSON

[ { "id": 6, "name": "Gabriel", "role": "Desenvolvedor", "image": 4, "city": "Itapetininga", "state": "São Paulo", "created": "2020-04-26", "modified": "2020-04-26" } ]

谢谢你的帮助


Tags: pathname图像jsontrueverboseosmodels
1条回答
网友
1楼 · 发布于 2024-03-29 11:19:06

This是来自文档的链接,Wagtail依赖于DRF,创建所需的序列化程序,并将图像表示为链接而不是pk,这应该很简单(请参见DRF文档)

自定义序列化程序上的This视频也会有所帮助

相关问题 更多 >