Django模型命名约定

时间:2008-12-22 09:53:34

标签: django django-models naming-conventions

Django模型类的首选命名约定是什么?

4 个答案:

答案 0 :(得分:32)

Django模型只是Python类,因此PEP-8中详述的Python命名约定适用。

例如:

  1. 分类
  2. 邮编
  3. 如果Django在创建相应的表时无法正确复制类名,则可以通过在内部META类中设置自定义 verbose_name_plural 字段来轻松覆盖复数形式。例如:

    class Story(models.Model):
        ...
    
        class Meta:
            verbose_name_plural = "stories"
    

答案 1 :(得分:3)

据我所知,这个想法是类名应该是单数的,应该使用没有空格的SentenceCase。所以你有这样的名字:

Person
TelephoneNumber

然后Django管理工具知道如何复数它们。对于像:

这样的名字不太好用
Category

得到复数作为分类,但我们去......

除此之外,只需给它一个名称,对你来说意味着什么,并简洁地总结了这个类的意思。

答案 2 :(得分:0)

此外,如果您需要一个以上单词的模型相关对象,则可以使用_set属性。示例:

class ProcessRoom(models.Model):
...
    plant = models.ForeignKey("Plant", verbose_name='planta', on_delete=models.CASCADE)

然后,相关对象将是:

plant = Plant.object.get(id=1)
process_rooms = plant.processroom_set.all

答案 3 :(得分:0)

在大多数编程语言中,人们更喜欢为对象/模型使用单数名称,因为这些模型也由数据库系统中的表表示。极简主义始终是避免将来出现某些含义冲突的好选择。

举例说明; https://stackoverflow.com/a/5841297/2643226