Meta
opções do model¶
Este documento explica todas as opções de metadados <meta-options> possíveis
que você pode dar a seu model em sua class Meta
.
Opções disponíveis do Meta
¶
db_table
¶
-
Options.
db_table
¶
O nome da tabela que será usado pelo model no banco de dados:
db_table = 'music_album'
Nomes de tabelas¶
Para poupar o seu tempo, o Django automaticamente deriva o nome das tabelas de
banco de dados usando os nomes das classes models e da aplicação que o contém.
O nomde de uma tabela de um model é construído juntando o “nome da app” do
model – o nome usado em manage.py startapp
– ao nome da classe do model,
com um underscore entre eles.
Por exemplo, se você tem uma app bookstore
(criada pelo manage.py startapp
bookstore
), um modelo definido como class Book
terá uma tabela com o nome
bookstore_book
.
Para sobrescrever o nome da tabela, use o parametro db_table
na
class Meta
.
Se o nome da sua tabela é uma palavra reservada do SQL, ou contém caracteres que não são permitidos em nomes de variáveis do Python – notadamente, o hífen – está OK. O Django colocará crases os nomes das colunas e tabelas sem você saber.
db_tablespace
¶
-
Options.
db_tablespace
¶
O nome do tablespace do banco dados utilizado para o model. Se o backend não suporta tablespaces, esta opção é ignorada.
get_latest_by
¶
-
Options.
get_latest_by
¶
O nome de um DateField
ou DateTimeField
no model. Isso
especifica o campo padrão do seu model que será utilizado pelo método
latest
do Manager
.
Exemplo:
get_latest_by = "order_date"
Veja a documentação para latest()
para mais.
order_with_respect_to
¶
-
Options.
order_with_respect_to
¶
Marca este objeto como “ordenável” em relação ao campo dado. Isso é quase sempre
utilizado com objetos relacionados para permití-los ser ordenados a respeito de
um objeto pai. Por exemplo, se um objeto Answer
está relacionado a
um objeto Question
, e uma questão tem mais de uma resposta, e a ordem das
respostas importa, você poderia fazer isso:
class Answer(models.Model):
question = models.ForeignKey(Question)
# ...
class Meta:
order_with_respect_to = 'question'
ordering
¶
-
Options.
ordering
¶
O ordenamento padrão de um objeto, para usar quando obtem-se listas de objetos:
ordering = ['-order_date']
Isso é uma tupla ou lista de strings. Cada strin é o nomde de um campo com um prefixo opcional “-”, que indica ordem descendente. Campos sem um “-” na frente serão ordenados ascendentemente. Use a string ”?” para ordenar randomicamente.
Note
Indiferentemente de quão muitos sejam os campos em
ordering
, o admin usará somente o primeiro campo.
Por exemplo, para ordernar por um campo pub_date
, use isto:
ordering = ['pub_date']
Para ordenar por pub_date
descendentemente, use isto:
ordering = ['-pub_date']
Para ordenar por pub_date
descendentemente, e por author
ascendentemente, use isto:
ordering = ['-pub_date', 'author']
permissions
¶
-
Options.
permissions
¶
Para adicionar permissões extras na tabela de permissões quando criar este
objeto. Permissões para adicionar, deletar e editar são automaticamente criadas
para cada objeto que use o admin
. Este exemplo expecifica uma permissão
extra can_deliver_pizzas
:
permissions = (("can_deliver_pizzas", "Can deliver pizzas"),)
Isso é uma lista ou tupla de tuplas duplas no formato (código_da_permissão,
nome_da_permissão_legível_por_humanos)
.
unique_together
¶
-
Options.
unique_together
¶
Seta os nomes de campos, que juntos, devem ser únicos:
unique_together = (("driver", "restaurant"),)
Isso é uma lista de listas de campos que devem ser únicos quando estão juntos.
ela é usada no Django admin e é executada a nível de banco de dados (i.e., a
regra UNIQUE
apropriada é incluída na consulta CREATE TABLE
).
Por conveniência, unique_together pode ser uma lista singular quando lida com camos sozinhos:
unique_together = ("driver", "restaurant")
verbose_name
¶
-
Options.
verbose_name
¶
Um nome legível-por-humanos para o objeto, no singular:
verbose_name = "pizza"
Se este não for fornecido, o Django usará uma versão do nome da classe:
CamelCase
se torna camel case
.
verbose_name_plural
¶
-
Options.
verbose_name_plural
¶
O nome no plural para o objeto:
verbose_name_plural = "stories"
Se este não for fornecido, o Django usará verbose_name
+
"s"
.