Roghanna múnla MetaLink to this heading

Míníonn an doiciméad seo na roghanna meiteashonraí go léir:ref: féadfaidh <meta-options>tú do mhúnla a thabhairt ina aicme Meta inmheánach.

Roghanna Meta ar fáilLink to this heading

teochairLink to this heading

Options.abstractLink to this definition

<abstract-base-classes>Má tá abstract = True, beidh an tsamhail seo an:ref: `aicme bonn teibí `.

app_labelLink to this heading

Options.app_labelLink to this definition

Má shainmhínítear samhail lasmuigh d'iarratas in:setting: INSTALLED_APPS, ní mór dó a dhearbhú cén aip leis a bhaineann sé:

Code
app_label = "myapp"

Más mian leat samhail a léiriú leis an bhformáid app_label.object_nameapp_label.model_name is féidir leat model a úsáid. _meta.labelsamhail. _meta.label_lower faoi seach.

`ainm_bainisteoir baseLink to this heading

Options.base_manager_nameLink to this definition

Ainm tréithe an bhainisteora, mar shampla, 'objects, le húsáid do na samhlach's:attr: `~Django.db.Models.Model. _bainisteoir bunaisteoir'.

db_tableLink to this heading

Options.db_tableLink to this definition

Ainm an tábla bunachar sonraí le húsáid don tsamhail:

Code
db_table = "music_album"

Ainmneacha táblaLink to this heading

Chun am a shábháil duit, faigheann Django ainm an tábla bunachar sonraí go huathoibríoch ó ainm d'aicme samhail agus ón aip ina bhfuil sé. Tógtar ainm tábla bunachar sonraí samhail trí “lipéad aip” an tsamhail - an t-ainm a d'úsáid tú in:djadmin: manage.py startapp <startapp>- a cheangal le hainm ranga an tsamhail, le béim eatarthu.

Mar shampla, má tá aip agat bookstore` (mar a chruthaigh manage.py startapp bookstore), beidh tábla bunachar sonraí darb ainm bookstore_book ag samhail a shainmhínítear mar class Book.

Chun ainm an tábla bunachar sonraí a shárú, bain úsáid as an paraiméadar db_table i aicme Meta`.

Más focal fhorchoimeádaithe SQL é d'ainm tábla bunachar sonraí, nó má tá carachtair nach gceadaítear in ainmneacha athróg Python - go háirithe, an giphen - tá sin ceart go leor. Luann Django ainmneacha colún agus tábla taobh thiar de na radhairc.

``db_table_comment ``Link to this heading

Options.db_table_commentLink to this definition

An trácht ar an tábla bunachar sonraí le húsáid don tsamhail seo. Tá sé úsáideach chun táblaí bunachar sonraí a dhoiciméadú do dhaoine aonair a bhfuil rochtain dhíreach acu ar bhunachar sonraí nach bhfuil ag féachaint ar do chód Django. Mar shampla:

Code
class Answer(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    answer = models.TextField()

    class Meta:
        db_table_comment = "Question answers"

db_tablespaceLink to this heading

Options.db_tablespaceLink to this definition

Ainm an:doc: spás tábla bunachar sonraí le húsáid don tsamhail seo. </topics/db/tablespaces> Is é an réamhshocrú an tionscadal: setting: DEFAULT_TABLESPACE socrú, má tá sé socraithe. Mura dtacaíonn an cúltaca le spásanna tábla, déantar neamhaird ar an rogha seo.

ainm_bhainisteoir réamhshocraitheLink to this heading

Options.default_manager_nameLink to this definition

Ainm an bhainisteora le húsáid do na samhail's:attr: `~django.db.Models.Model. _bainisteoir réamhshocraithe'.

faigh_is déanaí_bLink to this heading

Options.get_latest_byLink to this definition

Ainm réimse nó liosta d'ainmneacha réimse sa tsamhail, de ghnáthach:class: DateField, :class: DateTimeField, nó:class: Integerfield. Sonraíonn sé seo an réimsí réamhshocraithe atá le húsáid i do mhúnla:class: Manager's:Meth: ~django.db.models.queryset.latest agus:meth: ~django.db.models.queryset.earliest modhanna.

Sampla:

Code
# Latest by ascending order_date.
get_latest_by = "order_date"

# Latest by priority descending, order_date ascending.
get_latest_by = ["-priority", "order_date"]

Féach na docs: meth: ~django.db.models.query.queryset.latest le haghaidh tuilleadh eolais.

``bainistithe ``Link to this heading

Options.managedLink to this definition

Réamhshocraithe go True, rud a chiallaíonn go gcruthóidh Django na táblaí bunachar sonraí iomchuí in:djadmin: migrate nó mar chuid d'imirce agus bainfidh sé iad mar chuid d'ordú bainistíochta a:djadmin: flush. Is é sin, bainistíonn Django* saolré na dtáblaí bunachar sonraí.

Má tá “False”, ní dhéanfar aon oibríochtaí cruthaithe, modhnú nó scriosadh tábla bunachar sonraí don tsamhail seo. Tá sé seo úsáideach má léiríonn an tsamhail tábla atá ann cheana nó dearcadh bunachar sonraí a cruthaíodh ar bhealach éigin eile. Is é seo an difríocht* ionly* nuair a bhíonn bainistithe = bréag`. Tá gach gné eile de láimhseáil samhail díreach mar an gcéanna leis an ngnách. Áirítear leis seo

  1. Adding an automatic primary key field to the model if you don't declare it. To avoid confusion for later code readers, it's recommended to specify all the columns from the database table you are modeling when using unmanaged models.

  2. Má tá a: class: ~django.db.models.manyToManyField i samhail le Managed=False` a thugann in iúl ar mhúnla neamh-bhainistithe eile, ansin ní chruthófar an tábla idirmheánach don chomhcheangal go leor freisin. Mar sin féin, cruthófar an tábla idirghabhálaí idir samhail amháin bainistithe agus samhail neamh-bhainistithe amháin **.

    Más gá duit an t-iompar réamhshocraithe seo a athrú, cruthaigh an tábla idirghabhálaí mar mhúnla follasach (le bhainistithe ``socraithe de réir mar is gá) agus bain úsáid as an tréith: attr: `ManyTomanyField.through chun an gaol a úsáid do mhúnla saincheaptha.

Maidir le tástálacha a bhaineann le samhlacha le Managed = False`, is fútsa atá sé a chinntiú go gcruthaítear na táblaí cearta mar chuid den socrú tástála.

Má tá suim agat iompar rang samhail ar leibhéal Python a athrú, d'fhéad* d'fhéad* Managed = False a úsáid agus cóip de mhúnla atá ann cheana a chruthú. Mar sin féin, tá cur chuige níos fearr ann don chás sin: :ref: proxy-models.

``ordó_le_urchúis_toLink to this heading

Options.order_with_respect_toLink to this definition

Déanann an réad seo inordaithe maidir leis an réimse ar leith, de ghnáth is “ForeignKey'”. Is féidir é seo a úsáid chun rudaí gaolmhara a dhéanamh inordaithe maidir le réad tuismitheora. Mar shampla, má bhaineann Freagra le réad Ceiste, agus má tá níos mó ná freagra amháin ag ceist, agus má tá ord na bhfreagraí tábhachtach, déanfá seo:

Code
from django.db import models


class Question(models.Model):
    text = models.TextField()
    # ...


class Answer(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    # ...

    class Meta:
        order_with_respect_to = "question"

Nuair a shocraítear order_with_respect_to, cuirtear dhá mhodh breise ar fáil chun ord na rudaí gaolmhara a aisghabháil agus a shocrú: get_related_order () ``agus ``set_related_order (), áit a bhfuil RELATED` ainm an tsamhail ísle. Mar shampla, ag glacadh leis go bhfuil rudaí iolracha Freagra gaolmhara ag réad Ceiste, tá príomh-eochracha na rudaí Freagra gaolmhara sa liosta a thugtar ar ais:

Python console
>>> question = Question.objects.get(id=1)
>>> question.get_answer_order()
[1, 2, 3]

Is féidir ord rudaí Cheiste a bhaineann le Freagra a shocrú trí liosta de phríomhheochracha `Freagra a chur isteach:

Python console
>>> question.set_answer_order([3, 1, 2])

Faigheann na rudaí gaolmhara dhá mhodh freisin, get_next_in_order () ``agus ``get_previous_in_order (), ar féidir a úsáid chun rochtain a fháil ar na rudaí sin ina n-ord ceart. Ag glacadh leis go bhfuil na rudaí Freagra ordaithe ag id`:

Python console
>>> answer = Answer.objects.get(id=2)
>>> answer.get_next_in_order()
<Answer: 3>
>>> answer.get_previous_in_order()
<Answer: 1>

``ordú ``Link to this heading

Options.orderingLink to this definition

An t-ordú réamhshocraithe don réad, le húsáid agus liostaí rudaí á fháil:

Code
ordering = ["-order_date"]

Is tuple nó liosta teaghráin agus/nó nathanna fiosrúcháin é seo. Is ainm réimse é gach sreang le réimír roghnach “-”, a léiríonn ord íslitheach. Ordófar páirceanna gan tosaigh “-” ag ardú. Úsáid an teaghrán “?” chun ordú go randamach.

Mar shampla, chun ordú de réir réimse pub_date ag ardú, bain úsáid as seo:

Code
ordering = ["pub_date"]

Chun ordú trí pub_date` síos, bain úsáid as seo:

Code
ordering = ["-pub_date"]

Chun ordú trí pub_date ``ag dul síos, ansin trí ``author` ag ardú, bain úsáid as seo:

Code
ordering = ["-pub_date", "author"]

Is féidir leat úsáid freisin: doc: léirithe fiosraithe' </ref/models/expressions>. Chun ordú trí ``údar` ag ardú agus luachanna null a shórtáil go deireanach, bain úsáid as seo:

Code
from django.db.models import F

ordering = [F("author").asc(nulls_last=True)]

ceadúnaíLink to this heading

Options.permissionsLink to this definition

Ceadanna breise le dul isteach sa tábla ceadanna agus an réad seo á chruthú. Cruthaítear ceadanna a chur leis, a athrú, a scriosadh agus féachaint go huathoibríoch do gach samhail. Sonraíonn an sampla seo cead breise, can_deliver_pizzas:

Code
permissions = [("can_deliver_pizzas", "Can deliver pizzas")]

Seo liosta nó tiúpla de dhá thúpla san fhormáid (ceadúna_cód, human_readable_ceadúna_ainm).

ceadúna_réamhshocraitheLink to this heading

Options.default_permissionsLink to this definition

Réamhshocraithe go ('cuir', 'athraigh', 'scrios', 'view'). Féadfaidh tú an liosta seo a shaincheapadh, mar shampla, tríd é seo a shocrú ar liosta folamh mura dteastaíonn aon chead de na ceadanna réamhshocraithe ag teastáil ó aip. Caithfear é a shonrú ar an tsamhail sula gcruthófar an tsamhail ó:djadmin: migrate d'fhonn cosc a chur ar aon cheadanna fágtha a chruthú.

proxyLink to this heading

Options.proxyLink to this definition

<proxy-models>Má tá proxy = True, déileálfar le samhail a fho-aicmíonn samhail eile mar a:ref: `seachmhúnla `.

riachtanach_db_gnéatachLink to this heading

Options.required_db_featuresLink to this definition

Liosta de na gnéithe bunachar sonraí ba chóir a bheith ag an nasc reatha ionas go mbreithnítear an tsamhail le linn na céime imirce. Mar shampla, má shocraíonn tú an liosta seo go ['gis_enabled'], ní dhéanfar an tsamhail a shioncronú ach ar bhunachar sonraí atá cumasaithe GIS. Tá sé úsáideach freisin roinnt samhlacha a scipeáil agus tú ag tástáil le roinnt cúltaca bunachar sonraí. Seachain caidreamh idir samhlacha a d'fhéadfaí nó nach féidir a chruthú toisc nach láimhseálann an ORM é seo.

riachtanach_db_vendorLink to this heading

Options.required_db_vendorLink to this definition

Ainm díoltóra bunachar sonraí tacaithe a bhfuil an tsamhail seo sonrach air. Is iad na hainmneacha díoltóra ionsuite reatha: sqlite, postgresql`, mysql, oracle. Mura bhfuil an tréith seo folamh agus mura n-oireann an díoltóir nasc reatha leis, ní dhéanfar an tsamhail a shioncronú.

roghnaithe_on_shábháilLink to this heading

Options.select_on_saveLink to this definition

Determines if Django will use the pre-1.6 django.db.models.Model.save() algorithm. The old algorithm uses SELECT to determine if there is an existing row to be updated. The new algorithm tries an UPDATE directly. In some rare cases the UPDATE of an existing row isn't visible to Django. An example is the PostgreSQL ON UPDATE trigger which returns NULL. In such cases the new algorithm will end up doing an INSERT even when a row exists in the database.

De ghnáth ní gá an tréith seo a shocrú. Is é an réamhshocrú False.

See django.db.models.Model.save() for more about the old and new saving algorithm.

``Innéacsanna ``Link to this heading

Options.indexesLink to this definition

Liosta de:doc: indexes </ref/models/indexes> ar mhaith leat a shainiú ar an tsamhail:

Code
from django.db import models


class Customer(models.Model):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)

    class Meta:
        indexes = [
            models.Index(fields=["last_name", "first_name"]),
            models.Index(fields=["first_name"], name="first_name_idx"),
        ]

uathach_le chéimeLink to this heading

Options.unique_togetherLink to this definition

Tacair ainmneacha réimse a chaithfidh, a thógtar le chéile, a bheith uathúil:

Code
unique_together = [["driver", "restaurant"]]

Seo liosta de na liostaí a chaithfidh a bheith uathúil nuair a mheastar le chéile. Úsáidtear é i riarachán Django agus cuirtear i bhfeidhm ar leibhéal an bhunachar sonraí (ie, tá na ráitis chuí UNIQUE san áireamh sa ráiteas CREATE TABLE).

Ar mhaithe le háisiúlacht, is féidir le ``unique_together ``a bheith ina liosta amháin agus tú ag déileáil le sraith amháin réimsí:

Code
unique_together = ["driver", "restaurant"]

A: Aicme: ~Django.db.Models.ManyTomanyField ní féidir a chur san áireamh i ``unique_together ``. (Níl sé soiléir cad a chiallódh sé sin fiú!) <ManyToManyField.through>Más gá duit uathúlacht a bhaineann le a:class: ~django.db.models.manyToManyField a bhailíochtú, déan iarracht comhartha nó samhail explicit:attr: `through `a úsáid.

Tá an cód earráide unique_together ``sa `ValidationError a ardaítear le linn bailíochtaithe samhail nuair a sháraítear an srian.

``srianta ``Link to this heading

Options.constraintsLink to this definition

Liosta de:doc: sriantaine ar mhaith leat a shainiú </ref/models/constraints> ar an tsamhail:

Code
from django.db import models


class Customer(models.Model):
    age = models.IntegerField()

    class Meta:
        constraints = [
            models.CheckConstraint(condition=models.Q(age__gte=18), name="age_gte_18"),
        ]

ainm_verboseLink to this heading

Options.verbose_nameLink to this definition

Ainm inléite don duine don réad, uathúil:

Code
verbose_name = "pizza"

Mura dtugtar é seo, úsáidfidh Django leagan de ainm an ranga: Camelcase éiríonn `cás camel.

ainm_verbose_pluralLink to this heading

Options.verbose_name_pluralLink to this definition

An t-ainm iolra don réad:

Code
verbose_name_plural = "stories"

Mura dtugtar é seo, úsáidfidh Django: attr: ~options.verbose_name + "s".

Tréithe Meta atá le léamh amháinLink to this heading

lipéadLink to this heading

Options.labelLink to this definition

Léiríonn an réad, filleann app_label.object_name, m.sh. `Polls.question'.

label_lowerLink to this heading

Options.label_lowerLink to this definition

Léiríonn léiriú an tsamhail, filleann app_label.model_name, m.sh. `polls.question'.