32

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

4

4 回答 4

50

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

例如:

  1. 类别
  2. 邮政编码

如果 Django 在创建相应的表时未能正确地复数类名,您可以通过在内部 META 类中设置自定义的verbose_name_plural字段来轻松地覆盖复数。例如:

class Story(models.Model):
    ...

    class Meta:
        verbose_name_plural = "stories"
于 2008-12-22T11:42:45.877 回答
4

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

Person
TelephoneNumber

然后 Django 管理工具知道如何将它们复数。不适用于以下名称:

Category

它被多元化为类别,但我们开始了......

除此之外,只需给它起一个对您有意义的名称,并简明扼要地总结该类的含义。

于 2008-12-22T10:32:05.927 回答
2

在大多数编程语言中,人们更喜欢给对象/模型起一个单一的名称,因为这些模型也由数据库系统中的表表示。极简主义每次都是一个不错的选择,以避免将来出现一些意义冲突。

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

于 2019-07-19T07:21:38.143 回答
0

另外,当你需要一个以上的Model的相关对象时,可以使用_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
于 2019-03-25T19:54:32.200 回答