【发布时间】:2018-01-11 21:29:31
【问题描述】:
我有一个 AbstractBase 模型类,它被各自应用程序中的多个模型继承。我希望用户能够设置将在 Meta 类的 verbose_name 字段中使用的名称。如果用户在 AbstractBase 模型的某个字段中提供了名称,则该字段将用作详细名称
这是我迄今为止尝试过的
class AbstractBase(models.Model):
......
custom_name = models.CharField(blank=True)
class Meta(object):
abstract = True
def update_verbose_name(self, custom_name):
if self.project_setting is not None:
return verbose_name == self.custom_name
当我运行它时,它给了我TypeError: 'class Meta' got invalid attribute(s): update_verbose_name
还有其他方法可以解决这个问题吗?
【问题讨论】:
-
这似乎不是一个好主意。一个模型有很多实例,你如何选择哪一个应该是包含详细名称的那个?
-
将在我希望用户能够更新详细名称的模型中使用元继承 ` class Student(AbstractBase): # ... class Meta(AbstractBase.Meta): odering = name
标签: python django django-models metadata