Допустим, у меня есть приложение myapp
django, и мне нужно определить две конкретные модели, связанные с контактами, например,
myapp.PersonContact
myapp.CompanyContact
Несколько очевидная вещь, которую нужно сделать, - это создать новое приложение contacts
и определить абстрактную модель contacts.Contact
, которая затем может быть повторно использована в myapp.models
, например ::
# contacts/models.py
from django.db import models
class Contact(models.Model):
name = models.CharField(max_length=80)
...
class Meta:
abstract = True
# myapp/models.py
from contacts.models import Contact
class PersonContact(Contact):
person = ...
class CompanyContact(Contact):
company = ...
Моя цель - абстрагировать как можно больше логики для приложения contacts
, но единственное, что приходит на ум, - это определить абстрактный класс contacts.Contact
и использовать его, чтобы мне не пришлось переопределять то же самое поля в myapp.PersonContact
и myapp.CompanyContact
.
Можно каким-то образом определить contacts.Contact
связанные представления и / или шаблоны в приложении contacts
, чтобы мне не приходилось создавать почти идентичные представления и шаблоны CRUD для обоих типов PersonContact
и CompanyContact