是否可以为用于实际模型的抽象模型定义视图和模板?

时间:2019-01-07 17:51:11

标签: django django-models django-templates django-views

假设我有一个myapp django应用,我需要定义2个与联系人相关的特定模型,例如

  • 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应用程序中,但是唯一想到的就是定义一个Abstract类contacts.Contact并使用它,这样我就不必在myapp.PersonContactmyapp.CompanyContact中重新定义相同的字段。

可以通过某种方式在contacts.Contact应用程序中定义contacts相关的视图和/或模板,这样我就不必为{{1 }}和PersonContact

0 个答案:

没有答案