Django view, модели, форма, названия приложений - PullRequest
5 голосов
/ 15 ноября 2011

У меня есть вопрос: «Как мне назвать приложения, представления, модели, формы, поля и т. Д.?»

Например, у меня есть браузерная игра, в которой реализован почтовый ящик.

Приложение не может быть названо почтовым ящиком, поэтому я называю его pm_box (это хорошо?)

Затем я должен создать модель, в которой хранятся все сообщения. Какое название модели должно быть? Сообщение или Сообщения? Оно должно иметь логическое поле, равное True, если сообщение уже прочитано. Должно ли это поле называться read или is_read?

Тогда у меня есть представление, в котором перечислены сообщения. Должен ли я назвать его list_messages, message_list, message_list_view или list_messages_view (если я не указываю входящие / исходящие)?

Форма для проверки правильности ввода новых сообщений. Должна ли форма иметь имя NewMessageForm, MessageWritingForm ..?

После этого я хочу отслеживать метки времени для каждого игрока. Для этого у меня есть модель игрока (или это должны быть игроки)? С полем OneToOne для пользователя и полем OneToOne для модели отметки времени (или отметок времени), имеющей поля: онлайн, last_pm_sent, some_action.

Спасибо за все ваши ответы. Я уже читал документацию по стайлингу django и pep, но нигде эти вещи не указаны.

РЕДАКТИРОВАТЬ: Имя проекта (в pyCharm) - это название моей игры. Как я должен назвать первое приложение и где я должен держать модель Player (s) (в каком приложении), которая также является UserProfile.

1 Ответ

16 голосов
/ 15 ноября 2011

Хорошо, начиная с того, что вы назвали, это не должно быть 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 и т. Д.

Просмотры :

Поместить в папку множественное число модели, но вместо заглавной буквы использовать подчеркивание (_) после каждого слова (в случае двух букв) имя файла будет похоже на имя функции -> Пример: people / index.html, people / detail .html, student_guardians / display_fee.html и т. д.

Хотя вам может не понадобиться новая модель для сохранения отношения 1: 1, лучшим подходом будет добавление большего количества полей в текущую таблицу. Соглашения о метках времени могут быть такими: last_visited_at, last_played_at и т. Д.

Вы можете дать приложению имя, определив в модели:

class UserProfile(models.Model):
    pass
    class Meta:
        app_label = 'Your Application Name'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...