Найти - Пользователи
Полная версия: абстрактная модель, Meta, наследование
Начало » Django » абстрактная модель, Meta, наследование
1
ilnur
class Post(models.Model):
 ....
 class Meta:
  verbose_name = 'Категории'
  abstract = True
class BlogPost(Post):
 ...
 class Meta:
  db_table = 'blog_post
при таком раскладе verbose_name не наследуются в моделе BlogPost. как его унаследовать от родителя?
Lexander
Meta тоже наследовать нужно.
class BlogPost(Post):
 ...
 class Meta(Post.Meta):
  db_table = 'blog_post
ilnur
спасибо. а полу abstract тоже унаследуется же?
Lexander
Дочерний класс перестает быть абстрактным.
Поэтому, если вам нужно сохранить его абстрактность, повторите в дочернем Meta
abstract = true
ilnur
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, же?

Как правильно написать?
FishHook
@classmethod
 def get_last_posts(cls):
   return cls.objects.all()[5]
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB