【发布时间】:2022-01-22 20:30:55
【问题描述】:
我正在尝试按照本教程创建模型继承:https://www.digitalocean.com/community/tutorials/understanding-class-inheritance-in-python-3
一切正常。可以访问子级中的 FirstName 属性并在视图中显示,但是当我运行 makemigration/migrate 时,不会在数据库的表中创建继承字段。 (核心鲨鱼 / 核心鳟鱼)
我做错了什么?是否可以使用python继承和CBV通过makemigration/migrate在数据库中创建字段?
模型.py
class Fish(models.Model):
def __init__(self, first_name, last_name="Fish"):
self.first_name = first_name
self.last_name = last_name
def swim(self):
print("The fish is swimming.")
def swim_backwards(self):
print("The fish can swim backwards.")
class Meta:
verbose_name = 'Fish'
abstract = True
def __str__(self):
return self.first_name
class Shark(Fish):
def __init__(self, first_name, last_name="Shark", skeleton="cartilage", eyelids=True):
self.first_name = first_name
self.last_name = last_name
self.skeleton = skeleton
self.eyelids = eyelids
def swim_backwards(self):
print("The shark cannot swim backwards, but can sink backwards.")
class Trout(Fish):
def __init__(self, water ='', price = 0):
self.water = water
self.price = price
super().__init__(self)
class Meta:
verbose_name = 'Trout'
view.py
class IndexView(TemplateView):
template_name = 'index.html'
def get_context_data(self, **kwargs):
context = super(IndexView, self).get_context_data(**kwargs)
sammy = Shark("Sammy")
terry = Trout()
terry.first_name = "Terry"
context['sammy'] = sammy
context['terry'] = terry
return context
index.html
...
<body style="color:red">
<h1>Fish Name: {{sammy.first_name}}</h1>
<h1>Fish Name: {{terry.first_name}}</h1>
</body>
...
[2
【问题讨论】:
标签: python python-3.x django database-migration django-class-based-views