2

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

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'  

这工作正常,但如何存储像 Wagtail Images API 这样的图像信息?

例子:

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

这是我来自 API的JSON

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

感谢帮助!!!

4

1 回答 1

0

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

这个关于自定义序列化程序的视频也应该有所帮助。

于 2020-04-27T00:58:42.200 回答