[pyar] Consulta sobre Django FileField y Storages

Nicolás Demarchi listas en gilgamezh.me
Vie Dic 9 13:34:55 ART 2016


Hola.

Tal vez podrías que crear un subclase de FileField y permitirle recibir
el 'storage' parameter como un callable. Entonces en el definición de
ese campo en tu clase padre le das un método que define el tipo de
storage que queres. Asi podrias usar class properties y el metodo juntos
para cambiar el storage - de la misma manera hemos usado para cambiar el
`upload_to`. Nuestro caso:


def generate_asset_file_name(instance, filename):
return '/'.join([instance.storage_string, filename])


class SecureAsset(AssetAbstract):
file = models.FileField(
upload_to=asset_helpers.generate_asset_file_name,
storage=asset_helpers.secure_file_storage)

@property
def storage_string(self):
return "secure_assets"


class EcosystemsAsset(assets.models.SecureAsset):
@property
def storage_string(self):
return "ecosystems_assets"

Si te fijas en el source de FileField no parece terriblemente complicado
el cambio. Pero de todos modos esta manera tal vez seria medio hackish
para ustedes.

Saludos.
PD perdón por mi español escrito mas o menos.

Hola Adam,

Tu español esta muy bien :)

Gracias por el ejemplo, creo que de momento podría ser la manera mas "prolija" de hacer el cambio que quiero.

saludos!
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20161209/94017a7a/attachment.html>


Más información sobre la lista de distribución pyar