Python 在Django中是否可以继承多个抽象基类?

Python 在Django中是否可以继承多个抽象基类?,python,django,django-models,abstract-class,multiple-inheritance,Python,Django,Django Models,Abstract Class,Multiple Inheritance,我正在尝试为我的校园创建一个简单的事件调度器,作为学习Django的练习。我想定义一个事件,它可以唯一地标识为一组地点、发言人和日期。我的第一次尝试是使用多个抽象基类的继承来实现这一点。我仍然是一个编码初学者,所以我不确定我是否用正确的方法来做。有更好的方法做同样的事情吗 这是我的第一个方法。为每个地点、演讲者、日期创建抽象类,然后将它们全部继承到名为event的类中。我想这样做,因为相同的场地和扬声器将被反复使用 另一种方法是这样,但它似乎不适用于多次重复使用的场地和扬声器: class Ev

我正在尝试为我的校园创建一个简单的事件调度器,作为学习Django的练习。我想定义一个事件,它可以唯一地标识为一组地点、发言人和日期。我的第一次尝试是使用多个抽象基类的继承来实现这一点。我仍然是一个编码初学者,所以我不确定我是否用正确的方法来做。有更好的方法做同样的事情吗

这是我的第一个方法。为每个地点、演讲者、日期创建抽象类,然后将它们全部继承到名为event的类中。我想这样做,因为相同的场地和扬声器将被反复使用

另一种方法是这样,但它似乎不适用于多次重复使用的场地和扬声器:

class Event(models.Model):
    speaker=models.CharField(max_length=100)
    venue=models.CharField(max_length=400)
        date=models.DateTimeField('Event begins at')
    def __unicode__(self):
        return self.question
(我也不知道所有的数据库技术。)

那么,可以创建一个从多个抽象类继承的类吗?

(a)可以有多个抽象基类

(b) 如果您只需要收集方法,那么您不必让这些基类成为
Model
的子类

(c) 您的事件不应该从speaker等继承,除非您希望它单独拥有所有数据成员和这些基类的所有功能。相反,它应该有一个
ForeignKey
(或其他类似字段之一)指向这些类中每个类的实例当您需要一起收集数据时,应该使用合成;只有在需要定制行为时才应使用继承。