2011-11-15 11 views
5

Ho una domanda: "Come dovrei denominare app, viste, modelli, moduli, campi, ecc?"Vista Django, modelli, modulo, denominazione app

Ad esempio, ho un browser game con una cassetta postale implementata.

App non può essere chiamato casella di posta in modo che nomino pm_box (è quella buona?)

Poi devo creare modello in cui si svolgono tutti i messaggi. Quale modello dovrebbe essere il nome? Messaggio o messaggi? Dovrebbe avere un campo booleano che è True se il messaggio è già stato letto. Questo campo dovrebbe essere chiamato read o is_read?

Quindi ho una vista che elenca i messaggi. Devo chiamarlo list_messages, message_list, message_list_view o list_messages_view (se non specifichi la posta in arrivo/in uscita)?

Il modulo per la convalida dei nuovi dati di input dei messaggi. Il modulo deve essere denominato NewMessageForm, MessageWritingForm ..?

Successivamente, voglio tenere traccia dei timestamp per ogni giocatore. Per questo scopo ho un modello di giocatore (o dovrebbe essere un giocatore)? Con il campo OneToOne per l'utente e il campo OneToOne per il modello Timestamp (o timestamp) con campi: online, last_pm_sent, some_action.

Grazie per tutte le vostre risposte. Ho già letto la documentazione sullo stile di django e pep, tuttavia, da nessuna parte queste cose sono specificate.

MODIFICA: Il nome del progetto (in pyCharm) è il nome del mio gioco. Come dovrei nominare la prima app e dove dovrei tenere il modello Player (s) (in quale app) che è UserProfile.

risposta

16

Va bene partire con quello che hai nominato, non deve essere pm_box, provare denominazione con discrezione, se qualcosa è parola chiave provare a trovare un sinonimo appropriato, qui PersonalMessage e la cartella di vista sarà personal_messages mentre file sarà generalmente buono come singola parola, ad es. enlist.html, display.html, ecc sarà buono, abbiamo per lo più seguono questa struttura nel django:

Modello Nome classe

Singolare, se mutliple utilizzato superiore mantello lettera cammello -> Esempio: una persona, per l'utente, oggetto, StudentSubject, StudentGuardian ecc

Modulo Nome classe:

relativa Classe Modello Seguito da Form -> Esempio: PersonForm, form, ecc SubjectForm

variabili booleane:

corretta con is_ o il prefisso has_ ​​-> Esempio: is_present, is_available, is_online, has_parent, ecc.

Visualizzazioni:

Mettere nella cartella plurale del modello, ma invece di superiore lettera utilizzo di sottolineatura (_) dopo ogni parola (nel caso di due lettere) nome del file sarà come nome della funzione -> Esempio: persone/index.html, persone/detail.html, student_guardians/display_fee.html ecc

Anche se non può del tutto bisogno di un nuovo modello per mantenere 1-a-1 rapporto, un approccio migliore sarebbe di aggiungere più campi alla tabella corrente. convenzioni timestamp potrebbe essere come, last_visited_at, last_played_at, ecc

Si potrebbe dare un nome applicazione definendo in modello come:

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