【问题标题】:How to store images like Images API如何存储图像 API 之类的图像
【发布时间】:2020-08-10 11:07:13
【问题描述】:

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

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" } ]

谢谢你的帮助!!!

【问题讨论】:

  • 我正在添加一条说明,您需要在您的verbose_name 上使用uget_lazy,如果可以,我会尝试解决这个问题
  • @AhmedI.Elsayed Ty 兄弟!
  • 我认为this 应该有帮助

标签: python django django-models django-rest-framework wagtail


【解决方案1】:

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

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

【讨论】:

  • 无法将序列化程序与 models.Model 一起使用?
  • 为什么不呢?这是DRF的主要目的
  • 是的,但我说通过序列化程序没有 APIField("author_image", serializer=ImageSerializedField())
猜你喜欢
  • 2020-07-10
  • 1970-01-01
  • 1970-01-01
  • 2019-06-11
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
  • 2017-05-27
  • 2014-09-10
相关资源
最近更新 更多