Django视图,模型,表单,应用程序命名

时间:2011-11-15 13:07:35

标签: django naming-conventions

我有一个问题:“我应该如何命名应用,视图,模型,表单,字段等?”

例如,我有一个实施了邮箱的浏览器游戏。

应用程序无法命名为邮箱,因此我将其命名为pm_box(这样好吗?)

然后我必须创建所有消息的模型。什么型号名称应该是?消息或消息?如果已经读取了消息,它应该有一个布尔字段True。该字段应该被称为read还是is_read

然后我有一个列出消息的视图。我应该将其命名为list_messagesmessage_listmessage_list_viewlist_messages_view(如果我没有指定收件箱/发件箱)吗?

新消息输入数据验证的表单。表单应该命名为NewMessageForm,MessageWritingForm ..?

之后我想跟踪每个玩家的时间戳。为此我有玩家模型(或者它应该是玩家)?将OneToOne字段添加到用户,将OneToOne字段添加到包含字段的时间戳模型(或时间戳):在线,last_pm_sentsome_action

感谢您的所有答案。我已经阅读过django样式文档和pep,但是,这些东西都没有指定。

编辑:项目名称(pyCharm)是我的游戏名称。我应该如何命名第一个应用程序以及我应该在哪里持有Player(s)模型(在哪个应用程序中)也是UserProfile。

1 个答案:

答案 0 :(得分:16)

好的,从你的名字开始, 它必须不是pm_box,尝试离散地命名,如果有关键字的东西尝试找到一个合适的同义词,这里的PersonalMessage和你的视图文件夹将是personal_messages,而文件通常很好像单个单词,例如。 enlist.html,display.html等会很好,我们大多数都是在django中遵循这个结构:

模型类名称

  

Singular,如果mutliple使用上部字母驼峰套管 - >示例:Person,User,Subject,StudentSubject,StudentGuardian等。

表单类名称

  

表格后面的相关模型类 - >示例:PersonForm,UserForm,SubjectForm等。

布尔变量

  

适用于is_或has_前缀 - >示例:is_present,is_available,is_online,has_parent等

<强>视图

  

放入多个模型的文件夹,但是在每个单词之后使用下划线(_)而不是大写字母(在两个字母的情况下)文件名将像函数名一样 - &gt;示例:people / index.html,people / detail.html,student_guardians / display_fee.html等。

虽然您可能不完全需要新模型来保持一对一的关系,但更好的方法是在当前表中添加更多字段。时间戳约定可以是,last_visited_at,last_played_at等。

您可以通过在模型中定义为给app一个名称:

class UserProfile(models.Model):
    pass
    class Meta:
        app_label = 'Your Application Name'