Python 如何为其他类创建通用类也可以具有相同的模型
我不熟悉Python和Django平台。我试图设计一个通用类,以便其他类可以使用该通用类来创建相同的模型类型。为了更好地解释,我举了一个例子 假设我的普通课是Python 如何为其他类创建通用类也可以具有相同的模型,python,django,class,Python,Django,Class,我不熟悉Python和Django平台。我试图设计一个通用类,以便其他类可以使用该通用类来创建相同的模型类型。为了更好地解释,我举了一个例子 假设我的普通课是 class Person(models.Model): name = models.CharField(max_length=20) lastname=models.CharField(max_length=20) job=models.CharField(max_length=20) salary=models.IntegerF
class Person(models.Model):
name = models.CharField(max_length=20)
lastname=models.CharField(max_length=20)
job=models.CharField(max_length=20)
salary=models.IntegerField()
我想为我创建的每个人创建一个完全相同的带有Person类的表
在我看来是这样的
Class Person1(models.Model)
Person()
Class Person2(models.Model)
Person()
因此,每个person表都将具有与person类相同的模型类型。你能帮我怎么做吗?还是有办法做到这一点 我不确定我是否理解你想要什么,或者你为什么想要,但是,我认为你的问题的答案是使用一个 例如:
class Person(models.Model):
name = models.CharField(max_length=20)
lastname = models.CharField(max_length=20)
job = models.CharField(max_length=20)
salary = models.IntegerField()
class Meta:
abstract = True
class Person1(Person):
...
我认为您缺少的是对django中模型如何工作的基本理解 django中的模型是数据库中表的表示形式。在此表中,可以存储多行。您写入的每个字段都是此表中的一列 由于您有一个模型Person,django将在数据库中创建一个表,其中包含您在Person类中定义的列。在此表中,您可以添加许多“个人”项目 您不需要创建其他模型来存储您在Person模型中已经描述过的相同内容 继承在django模型中是一个高级概念,只会在以后导致问题。我建议您一步一步地学习,因为它解释了如何使用django对象关系模型(ORM)——模型 最终,您将认识到,要存储多个“人”,您只需执行以下操作:
personA = Person()
personA.name = 'John'
personA.lastname = 'Smith'
personA.job = 'Chef'
personA.salary = 130
personA.save()
personB = Person(name='Homer',lastname='Simpson',job='Donut Eater',salary=100)
personB.save()
你为什么认为你需要这样做?你可以在原始的
Person
类中存储多个“Person”。为了爱所有美好和神圣的事物,请阅读文档:你用这样的问题浪费了我们和你的时间。@ChrisPratt:这似乎不必要的苛刻……不太可能。这里的目标不应该是向人们灌输知识。比如运行一个简单的谷歌搜索,或者花5秒钟的时间查看文档是否碰巧提到了你要问的问题,这是来这里之前最不需要问别人的问题。谢谢,你理解得很好。但是,我只是想确定我应该为Person1编写什么,使其具有与Person类完全相同的字段?在我的示例中,不会为Person
创建任何表,因为抽象
是真的
。但是将为Person1
创建一个表,该表将包含基类(Person)的4个字段(姓名、姓氏、职务和薪水)。如果需要,您可以向Person1
添加更多字段。但是,如果您的Person1
与Person
完全相同,则只需将我的“…”替换为pass
。阅读文档…谢谢,但我必须先在model.py中创建两个表(PersonB和PersonA),然后再这样做,对吗?如果您存储的信息不同,您只需要创建两个表;否则,不需要复制表。