2010-10-08 4 views
0

Я думаю, что это довольно простой вопрос для вас. Я хочу очистить атрибут модели django.Быстрый вопрос: очистить атрибут модели в django

Если у меня есть что-то вроде этого:

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

В абстрактной функции я хочу, чтобы очистить атрибут, но в то время я не знаю, какой тип поля имеет. Поэтому примерами будут name="", pages=0 или img=None .. Есть ли способ сделать это в общем виде? Я ищу что-то вроде SET_TO_EMPTY(book,"pages")

Знаете ли вы такую ​​функцию?

большое спасибо заранее!

ответ

1

Я не думаю, что есть чистый способ сделать это. Однако, предполагая, что вы установили значение по умолчанию (которые вы не имеете), вы можете сделать это следующим образом:

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

Обратите внимание, что текущая модель не позволит значение None. Для этого вам необходимо установить null=True и blank=True. Для pages вам нужен default=0.

Смежные вопросы