2010-11-16 6 views
3

J'utilise une classe personnalisée sur mon modèle pour fournir le téléchargement d'images, via une application appelée django-filebrowser.Dans django, comment puis-je récupérer une valeur de db dans un modèle de champ personnalisé?

# myapp/models.py 
class Book(models.Model): 
    name = models.CharField(max_length=30) 
    image = FileBrowseField("Image", max_length=200, blank=True, null=True) 
    ... 

Le modèle utilise le champ personnalisé de navigateur de fichiers "FileBrowserField", ce qui ajoute un lien vers une page de téléchargement séparé (http: // site/admin/navigateur de fichiers/browse/ot = desc & o = date). Qu'est-ce que je voudrais faire est de modifier le modèle de formulaire personnalisé pour ajouter un paramètre "dir", comme ça: (http: // site/admin/filebrowser/parcourir /? Ot = desc & o = date & dir = book1). book1, dans ce cas, serait extrait du "nom" CharField de ce livre.

Je sais que le modèle que je veux modifier est rendu par fields.py de filebrowser, et il y a une variable qui définit le paramètre "dir", mais Je ne sais pas comment extraire la valeur de chaîne de mon propre modèle à fields.py afin que je puisse définir cette variable. Est-ce que quelqu'un a des suggestions?

+1

Je suppose que vous parlez de http://code.google.com/p/django-filebrowser/ Il est difficile de dire ou répondez sans la source de l'application. – stefanw

+0

J'ai ajouté le lien à mon message. – linqq

Répondre

2

trouvé une solution ailleurs, donc je pensais que je le partager:

# models.py 
class Book(models.Model): 
    name = models.CharField(max_length=30) 
    image = FileBrowseField("Image", max_length=200, blank=True, null=True) 

... 

    def __init__(self, *args, **kargs):             
     super(Property, self).__init__(*args, **kargs)        
     self._meta.get_field_by_name("image")[0].directory = self.name 
Questions connexes