2010-10-08 4 views
0

Je pense que c'est une question assez facile pour vous. Je souhaite effacer un attribut d'un modèle django.question rapide: effacer un attribut d'un modèle en django

Si j'ai quelque chose comme ceci:

class Book(models.Model): 
    name = models.TextField() 
    pages = models.IntegerField() 
    img = models.ImageField() 

Dans une fonction abstraite je veux effacer un attribut, mais à ce moment-là, je ne sais pas quel type le domaine a. Donc, des exemples seraient name="", pages=0 ou img=None .. Y at-il un moyen de le faire de manière générique? Je recherche quelque chose comme SET_TO_EMPTY(book,"pages")

Connaissez-vous une telle fonction?

merci beaucoup d'avance!

Répondre

1

Je ne pense pas qu'il existe une façon propre de le faire. Cependant, en supposant que vous avez défini une valeur par défaut (que vous n'avez pas), vous pouvez le faire comme ceci:

book.img = book._meta.get_field('img').default 

Prenez note que votre modèle actuel ne permettra pas à une valeur None. Pour permettre ceux que vous devez définir null=True et blank=True. Pour pages vous avez besoin d'un default=0.