Como fazer um Django ImageField salvar a imagem para outro modelo?
-
06-07-2019 - |
Pergunta
Eu tenho um aplicativo de perfis dos membros que armazena informações simples sobre membros de uma equipe. Parte do perfil é uma imagem para ser usada como um avatar. Eu tenho usado Photologue para criar galerias de padrão de fotos, mas ele tem um ImageModel que pode ser estendido para aproveitar a funcionalidade de redimensionamento e cache de Photologue .
O problema é que o exemplo que eles dão em sua página parecida com esta:
from django.contrib.auth.models import User
from photologue.models import ImageModel
class UserPortrait(ImageModel):
user = models.OneToOneField(User, primary_key=True)
Eu poderia substituir usuário com os e tudo estaria bem, exceto pelo fato de que a edição do perfil torna-se um processo de duas etapas; Primeiro eu tenho que criar um perfil dos membros, em seguida, criar um UserPortrait e associá-lo com os Estados. Eu gostaria de agilizar esta de volta em um único processo passo, como se eu estivesse usando um ImageField.
Eu tenho substituído campos de imagem ao nível do formulário e do nível admin.py, mas eu estou querendo saber se eu posso lidar com isso no nível do modelo ou mesmo a nível de campo. Eu gostaria de ter a funcionalidade embutida de um ImageField, mas ainda tem o arquivo gerenciado por um modelo separado, relacionado. inlines modelo real parecer um exagero, desde a sua uma imagem apenas.
Solução
Sua classe Membro deve estender ImageModel. Não há necessidade de uma classe adicional (por exemplo UserPortrait).