在django中为Meta类添加自定义方法

时间:2018-01-11 21:29:31

标签: python django django-models metadata

我有一个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

还有另一种解决方法吗?

1 个答案:

答案 0 :(得分:0)

如何更改这样的缩进:

class AbstractBase(models.Model):
   ......
   custom_name = models.CharField(blank=True)

   def update_verbose_name(self, custom_name):
       if self.project_setting is not None:
           return verbose_name == self.custom_name

   class Meta(object):
      abstract = True