Структура методов Django, охватывающих разные модели - PullRequest
2 голосов
/ 03 мая 2010

У меня есть две модели (скажем, A и B), которые являются независимыми и имеют независимые методы. Я хочу добавить несколько методов, которые работают на обеих моделях.

Например, addX () создаст объект из обеих моделей A и B.

Как лучше всего структурировать код в этой ситуации? Не имеет смысла, что метод принадлежит ни одному из методов моделей. Является ли стандарт написанием сервиса для такой «абстрактной» модели?

1 Ответ

0 голосов
/ 03 мая 2010

Я не уверен, что полностью понимаю ваш вопрос. Вы спрашиваете, где разместить общие методы, или вы спрашиваете, как вызвать один метод для работы с двумя классами?

Если вам просто нужны общие методы, тогда у меня будет абстрактная родительская модель, которая обе подкласса модели:

class ParentModel(models.Model):

    class Meta:
        abstract = True

    def some_shared_method(self):
        ...

class A(ParentModel):
    ...

class B(ParentModel):
    ...

опция абстрактного мета говорит Django не создавать никаких реальных таблиц БД для ParentModel. Это просто для хранения методов.

Проверьте это для более подробной информации: http://docs.djangoproject.com/en/dev/topics/db/models/#id6

...