这是我计划用于游戏的代码.但它抱怨MRO错误.我不知道为什么.有人能为我解释一下吗?非常感谢.
class Player:
pass
class Enemy(Player):
pass
class GameObject(Player, Enemy):
pass
g = GameObject()
Run Code Online (Sandbox Code Playgroud) Django提供了抽象基类功能(它与Python中的ABC类不同?)因此可以创建一个可以继承的模型(Django的models.Model),但是没有该模型在数据库中有一个实际的表.一个通过在Model的Meta类中设置'abstract'属性来触发此行为.
现在的问题是:为什么Django会这样解决?为什么需要这种特殊的'抽象基类'模型?为什么不通过继承对象类并将其与现有模型混合来制作模型mixin?或者这也可以通过Python ABCs的任务?(请注意,我对Python中的ABC类不是很熟悉,我的无知可能会在这里显示)
我创建了一个mixin并在某些模型中继承了它.问题是当我创建模式迁移时,mixin的字段就在那里.
class MyMixin(object):
a_field = models.CharField(max_length=30, blank=True)
another_field = models.DateTimeField(blank=True, null=True)
class Meta:
abstract = True
class MyModel(models.Model, myMixin):
...
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
在 wagtail 中,有没有一种好方法可以将相同的字段添加到每个页面模型中?我正在考虑几乎每个页面都希望实现的 SEO 数据字段和搜索元信息等内容。我似乎无法找到使用 Wagtail 执行此操作的好方法。