Je souhaite implémenter une fonctionnalité dans une de mes applications, mais je ne sais pas comment procéder. Ce que je veux c'est ceci: j'ai une classe modèle qui utilise imagekit pour sauvegarder ses images, et j'aimerais que les utilisateurs puissent mettre à jour les images facilement pour les véhicules sans avoir à modifier chaque enregistrement de véhicule respectif.Mise à jour automatique des images
Comment ils vont le faire est qu'il y aura un dossier nommé originals
et il y contenir des dossiers pour chaque véhicule dans le format <stock_number>/PUBLIC
Si un utilisateur déplace les images dans le dossier PUBLIC
pour un véhicule, lorsque le script est exécuté , il compare ces images avec celles en cours et les met à jour si celles du dossier PUBLIC
sont plus récentes. Si l'enregistrement n'a pas d'images, elles seront ajoutées. En outre, si les images ont été supprimées du répertoire site_media, leurs liens doivent être supprimés de la base de données.
Comment puis-je m'y prendre de manière efficace? Mes modèles sont comme ci-dessous:
class Photo(ImageModel):
name = models.CharField(max_length = 100)
original_image = models.ImageField(upload_to = 'photos')
num_views = models.PositiveIntegerField(editable = False, default=0)
position = models.ForeignKey(PhotoPosition)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
class IKOptions:
spec_module = 'vehicles.specs'
cache_dir = 'photos'
image_field = 'original_image'
save_count_as = 'num_views'
class Vehicle(models.Model):
objects = VehicleManager()
stock_number = models.CharField(max_length=6, blank=False, unique=True)
vin = models.CharField(max_length=17, blank=False)
....
images = generic.GenericRelation('Photo', blank=True, null=True)
Progress Update J'ai essayé le code, et tout cela fonctionne, je manque quelque chose que je peux obtenir l'image, mais après cela, ils aren » t transféré dans le répertoire site_media/photos
... suis-je supposé faire cela ou imagekit
le fera automatiquement? Je suis un peu confus.
Je sauve les photos comme si:
Photo.objects.create(content_object = vehicle, object_id = vehicle.id,
original_image = file)
Pourriez-vous clarifier la question? Est-ce sur l'écriture du script de mise à jour, ou comment/quand l'exécuter? Vous metion un "moyen efficace" de faire les choses; avez-vous quelque chose qui fonctionne (même partiellement) et cherchez un algorithme plus efficace? –
Il s'agit plus d'écrire le script ... Je suis complètement coincé sur la façon de s'y prendre et aurait besoin d'aide à ce sujet. Toutes les idées sont totalement les bienvenus – Stephen