2009-06-23 10 views
0

J'ai une application de profils de membres qui stocke des informations simples sur les membres d'une équipe. Une partie du profil est une image à utiliser comme avatar. J'ai utilisé Photologue pour créer des galeries de photos standard, mais il a un ImageModel qui peut être étendu pour tirer parti de la fonctionnalité de redimensionnement et de mise en cache de Photologue.Comment faire un Django ImageField enregistrer l'image dans un autre modèle?

Le problème est, l'exemple qu'ils donnent sur leur page ressemble à ceci:

from django.contrib.auth.models import User 
from photologue.models import ImageModel 

class UserPortrait(ImageModel): 
    user = models.OneToOneField(User, primary_key=True) 

je pourrais remplacer l'utilisateur avec membre et tout serait bien, à l'exception du fait que la modification du profil devient deux étapes processus; D'abord, je devrais créer un profil de membre, puis créer un UserPortrait et l'associer au membre. Je voudrais rationaliser cela en un seul processus, comme si j'utilisais un ImageField.

J'ai remplacé les champs d'image au niveau du formulaire et au niveau admin.py, mais je me demande si je peux gérer cela au niveau du modèle ou même au niveau du champ. Je voudrais avoir la fonctionnalité inline d'un ImageField mais toujours avoir le fichier géré par un modèle séparé, lié. Les inlines du modèle réel semblent être exagérés depuis sa seule image.

Répondre

1

Votre classe de membre doit étendre ImageModel. Il n'y a pas besoin d'une classe supplémentaire (par exemple UserPortrait).

+0

Je suppose que l'exemple est comment vous auriez à le faire pour les utilisateurs puisque la classe User ne peut pas être étendue. – Soviut

+0

J'ai décidé d'aller sur la route inline puisque j'ai pensé que je pourrais vouloir plus d'une image associée à un profil à un moment donné. – Soviut

Questions connexes