Django modelo de convenção de nomenclatura

votos
16

O que é a convenção de nomenclatura preferencial para classes de modelo de Django?

Publicado 22/12/2008 em 10:53
fonte usuário
Em outras línguas...                            


4 respostas

votos
29

Modelos do Django são apenas classes Python, por isso as convenções de nomenclatura de Python detalhado em PEP-8 aplica.

Por exemplo:

  1. Pessoa
  2. Categoria
  3. Código postal

Se Django não consegue pluralizar o nome da classe corretamente ao criar a tabela correspondente, você pode facilmente substituir a pluralização, definindo um costume verbose_name_plural campo em uma classe META interior. Por exemplo:

class Story(models.Model):
    ...

    class Meta:
        verbose_name_plural = "stories"
Respondeu 22/12/2008 em 12:42
fonte usuário

votos
3

Tanto quanto eu sei, a idéia é que o nome da classe deve ser singular e deve usar SentenceCase sem espaços. Então você teria que nomes como:

Person
TelephoneNumber

Em seguida, a ferramenta de administração do Django sabe como pluralise eles. não funciona tão bem para nomes como:

Category

que fica pluralizado como Categorys, mas lá vamos nós ...

Além disso, apenas dar-lhe um nome que significa algo para você e sucintamente resume o que a classe é a intenção de representar.

Ben

Respondeu 22/12/2008 em 11:32
fonte usuário

votos
0

Na maioria das linguagens de programação, as pessoas preferem dar um nome singular para os objetos / modelos, porque esses modelos também são representados por tabelas em seu sistema de banco de dados. O minimalismo é uma boa escolha cada vez para evitar alguns conflitos de significado no futuro.

Para exemplificar; https://stackoverflow.com/a/5841297/2643226

Respondeu 19/07/2019 em 10:21
fonte usuário

votos
0

Em adition, quando você precisa de objetos relacionados para um modelo de mais de uma palavra, você pode usar o atributo _set. Exemplo:

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

Em seguida, os objetos relacionados serão:

plant = Plant.object.get(id=1)
process_rooms = plant.processroom_set.all
Respondeu 25/03/2019 em 19:54
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more