Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » абстрактная модель, Meta, наследование [RSS Feed]

#1 Июнь 22, 2013 13:09:17

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

абстрактная модель, Meta, наследование

class Post(models.Model):
 ....
 class Meta:
  verbose_name = 'Категории'
  abstract = True
class BlogPost(Post):
 ...
 class Meta:
  db_table = 'blog_post
при таком раскладе verbose_name не наследуются в моделе BlogPost. как его унаследовать от родителя?

Офлайн

#2 Июнь 22, 2013 13:22:28

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

абстрактная модель, Meta, наследование

Meta тоже наследовать нужно.

class BlogPost(Post):
 ...
 class Meta(Post.Meta):
  db_table = 'blog_post



Офлайн

#3 Июнь 22, 2013 16:23:25

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

абстрактная модель, Meta, наследование

спасибо. а полу abstract тоже унаследуется же?

Офлайн

#4 Июнь 22, 2013 17:29:58

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

абстрактная модель, Meta, наследование

Дочерний класс перестает быть абстрактным.
Поэтому, если вам нужно сохранить его абстрактность, повторите в дочернем Meta
abstract = true



Офлайн

#5 Июнь 24, 2013 16:07:17

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

абстрактная модель, Meta, наследование

class Post(models.Model):
 ....
 class Meta:
  verbose_name = 'Категории'
  abstract = True
 def get_last_posts(self):
   return Post.objects.all()[5]
class BlogPost(Post):
 ...
 class Meta:
  db_table = 'blog_post
get_last_posts унаследуется BlogPost'om. А данные из какой модели она будет возвращать? из Post, же?

Как правильно написать?

Офлайн

#6 Июнь 24, 2013 16:28:37

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

абстрактная модель, Meta, наследование

@classmethod
 def get_last_posts(cls):
   return cls.objects.all()[5]



Офлайн

  • Начало
  • » Django
  • » абстрактная модель, Meta, наследование[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version