Абстрактные модели и внешние ключи в Django

Я работаю над проектом django, в котором я создаю набор из трех абстрактных моделей, которые я буду использовать в дальнейшем для множества приложений. Проблема, с которой я столкнулся, заключается в том, что я хочу подключить эти модели через ForeignKey, но django сообщает мне, что он не может назначать внешние ключи абстрактной модели.

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

Модель выглядит примерно так:

class Book(models.Models):
    name = models.CharField(...)
    author = models.CharField(...)
    ...

    class Meta:
        abstract = True

class Page(models.Models):
    book = models.ForeignKey(Book)
    chapter = models.CharField(...)
    ...

    class Meta:
        abstract = True

class Word(models.Models):
    page = models.ForeignKey(Page)
    line = models.IntegerField(...)
    ...

    class Meta:
        abstract = True

Обратите внимание, что эта модель здесь просто для того, чтобы дать пример того, что я пытаюсь сделать, следовательно, имеет ли эта модель (Книга-Страница-Слово) смысл с точки зрения реализации, является не требуется.

11
задан phoxley 23 September 2011 в 17:31
поделиться