2010-05-03 1 views
2

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

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

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

ответ

0

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

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

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

+0

Это именно то, что я искал ... я не хотел, чтобы сделать услугу, но это делает то, что мне нужно. Благодаря! – Duncan

+0

Добро пожаловать! – Hassan

Смежные вопросы