Как расширить классы Django Meta, если классы находятся в разных файлах? - PullRequest
1 голос
/ 22 ноября 2010

Документы Django говорят:

class CommonInfo(models.Model):
    ...
    class Meta:
        abstract = True
        ordering = ['name']

class Student(CommonInfo):
    ...
    class Meta(CommonInfo.Meta):
        db_table = 'student_info'

Но как мне справиться с этим, если CommonInfo и Student находятся в разных файлах?На данный момент мой файл Student выглядит как

from CommonInfo import CommonInfo
class Student(CommonInfo):
    ...
    class Meta(CommonInfo.Meta):
        db_table = 'student_info'

Но это бросает 'AttributeError: Тип объекта "CommonInfo" не имеет атрибута "Meta"'

1 Ответ

2 голосов
/ 22 ноября 2010

Метакласс, используемый в Model, удаляет внутренний класс Meta из определения класса, поэтому он недоступен для дальнейшего использования.Определите его как отдельный класс и назначьте его атрибуту класса Meta, если он вам нужен в другом месте.

...