Conas orduithe saincheaptha ``django-admin ``a chruthúLink to this heading

Is féidir le hiarratais a gcuid gníomhartha féin a chlárú le manage.py`. Mar shampla, b'fhéidir gur mhaith leat gníomh manage.py a chur le haghaidh aip Django atá á dháileadh agat. Sa doiciméad seo, beimid ag tógáil ordú saincheaptha closepoll don iarratas polls óna:doc: `teagorial@@</intro/tutorial01> `.

Chun seo a dhéanamh, cuir eolaire bainistí/orduithe ``leis an bhfeidhmchlár. Cláróidh Django ordú `manage.py do gach modúl Python san eolaire sin nach dtosaíonn a ainm le béim. Mar shampla:

Text
polls/
    __init__.py
    models.py
    management/
        __init__.py
        commands/
            __init__.py
            _private.py
            closepoll.py
    tests.py
    views.py

Sa sampla seo, cuirfear an t-ordú closepoll` ar fáil d'aon tionscadal a chuimsíonn an feidhmchlár polls in:setting: INSTALLED_APPS.

Ní bheidh an modúl _private.py ar fáil mar ordú bainistíochta.

<ref-basecommand-subclasses>Níl ach riachtanas amháin ag an modúl closepoll.py - ní mór dó aicme Command a shainmhíniú a leathnaí:class: BaseCommand nó ceann dá: ref: `fo-aicmí `.

Chun an t-ordú a chur i bhfeidhm, cuir in eagar polls/management/commands/closepoll.py` chun cuma seo a leanas:

Code
from django.core.management.base import BaseCommand, CommandError
from polls.models import Question as Poll


class Command(BaseCommand):
    help = "Closes the specified poll for voting"

    def add_arguments(self, parser):
        parser.add_argument("poll_ids", nargs="+", type=int)

    def handle(self, *args, **options):
        for poll_id in options["poll_ids"]:
            try:
                poll = Poll.objects.get(pk=poll_id)
            except Poll.DoesNotExist:
                raise CommandError('Poll "%s" does not exist' % poll_id)

            poll.opened = False
            poll.save()

            self.stdout.write(
                self.style.SUCCESS('Successfully closed poll "%s"' % poll_id)
            )

<poll_ids>Is féidir an t-ordú saincheaptha nua a ghlaoch ag baint úsáide as ``python manage.py closepoll ``.

Tógann an modh handle () ```poll_ids amháin nó níos mó agus leagann sé poll.opened go False do gach ceann amháin. Má thug an t-úsáideoir tagairt do aon vótaíochtaí nach bhfuil ann, ardaítear a:exc: CommandError. Níl an tréith poll.opened ann in:doc: tutorial agus cuireadh leis Polls.Models.Question don sampla seo</intro/tutorial02>.

Ag glacadh le hargóintLink to this heading

D'fhéadfaí an closepoll` céanna a mhodhnú go héasca chun vótaíocht ar leith a scriosadh in ionad é a dhúnadh trí ghlacadh le roghanna líne ordaithe breise. Is féidir na roghanna saincheaptha seo a chur leis sa modh:: ~BaseCommand.add_Arguments mar seo:

Code
class Command(BaseCommand):
    def add_arguments(self, parser):
        # Positional arguments
        parser.add_argument("poll_ids", nargs="+", type=int)

        # Named (optional) arguments
        parser.add_argument(
            "--delete",
            action="store_true",
            help="Delete poll instead of closing it",
        )

    def handle(self, *args, **options):
        # ...
        if options["delete"]:
            poll.delete()
        # ...

Tá an rogha (scrios inár sampla) ar fáil i bparaiméadar dict na roghanna den mhodh láimhseála. Féach doiciméadú Python: py:mod: argparse le haghaidh tuilleadh eolais faoi úsáid ``add_argument ``.

Chomh maith le bheith in ann roghanna líne ordaithe saincheaptha a chur leis, is féidir le gach: doc: ordaithe bainistíochta `glacadh le roinnt roghanna réamhshocraithe mar: rogha: `--verbosity`</ref/django-admin> agus:option: `--traceback.

Orduithe bainistíochta agus áitiúlaLink to this heading

De réir réamhshocraithe, déantar orduithe bainistíochta a fhorghníomhú leis an locale gníomhach reatha.

Más gá, ar chúis éigin, d'ordú bainistíochta saincheaptha a rith gan áit ghníomhach (mar shampla, chun ábhar aistrithe a chosc ó chur isteach sa bhunachar sonraí), díghníomhachtaigh aistriúcháin ag baint úsáide as an maisitheoir @no_translations ar do mhodh:

Code
from django.core.management.base import BaseCommand, no_translations


class Command(BaseCommand):
    ...

    @no_translations
    def handle(self, *args, **options): ...

Ós rud é go dteastaíonn rochtain ar shocruithe cumraithe chun aistriúchán a dhíghníomhachtú, ní féidir an maisitheoir a úsáid le haghaidh orduithe a oibríonn gan socruithe cumraithe.

TástáilLink to this heading

<topics-testing-management-commands>Is féidir faisnéis faoi conas orduithe bainistíochta saincheaptha a thástáil in:ref: `testing docs `.

Orduithe suntasachaLink to this heading

Cláraíonn Django na horduithe ionsuite agus ansin déanann sé cuardach ar orduithe in:setting: INSTALLED_APPS ar ais. Le linn an chuardaigh, má dhúbailíonn ainm ordaithe ordú cláraithe cheana féin, cuireann an t-ordú nua-aimsithe ar an gcéad cheann.

Is é sin le rá, chun ordú a shárú, caithfidh an t-ainm céanna a bheith ag an ordú nua agus caithfidh a aip a bheith roimh aip an ordaithe athsháraithe in:setting: INSTALLED_APPS.

Is féidir orduithe bainistíochta ó aipeanna tríú páirtí a cuireadh athshealbhú gan aon ghnó a chur ar fáil faoi ainm nua trí ordú nua a chruthú i gceann de na feidhmchláir do thionscadail (ordaithe roimh an aip tríú páirtí in:setting: INSTALLED_APPS) a allmhairíonn ``Ordú ``den ordú sáraithe.

Rudaí ordaitheLink to this heading

class BaseCommandLink to this definition

An bunaicme as a dtagann gach ordú bainistíochta sa deireadh.

<ref-basecommand-subclasses>Úsáid an rang seo más mian leat rochtain a fháil ar na meicníochtaí go léir a pháirsíonn na hargóintí líne ordaithe agus a oibríonn amach cén cód atá le glaoch mar fhreagra; mura gá duit aon cheann den iompar sin a athrú, smaoinigh ar cheann díobh a úsáid: ref: `fo-aicmí `.

Éilíonn fo-aicmiú an ranga:class: BaseCommand go gcuirfidh tú an modh: ~BaseCommand.Handle i bhfeidhm.

TréitheLink to this heading

<ref-basecommand-subclasses>Is féidir na tréithe go léir a shocrú i do rang díorthaithe agus is féidir iad a úsáid in:class: BaseCommand subclass.

BaseCommand.helpLink to this definition

<command>Cur síos gairid ar an ordú, a phriontálfar sa teachtaireacht chabhrach nuair a ritheann an t-úsáideoir an t-ordú ``python manage.py help ``.

BaseCommand.missing_args_messageLink to this definition

Má shainmhíníonn d'ordú argóintí seasaimh éigeantacha, is féidir leat an earráid teachtaireachta a thug ar ais a shaincheapadh i gcás argóint Is é an réamhshocrú aschur ag:py:mod: argparse (“ró-bheag argóintí”).

BaseCommand.output_transactionLink to this definition

Boolean a thugann le fios an n-aschuireann an t-ordú ráitis SQL; má tá True, filteofar an t-aschur go huathoibríoch le BEGIN; ``agus ``COMMIT;. Is é luach réamhshocraithe False.

BaseCommand.requires_migrations_checksLink to this definition

Boolean; má tá True, priontáil an t-ordú rabhadh mura n-oireann an tacar imirce ar an diosca leis na himirce sa bhunachar sonraí. Ní chuireann rabhadh cosc ar an ordú a fhorghníomhú. Is é luach réamhshocraithe False.

BaseCommand.requires_system_checksLink to this definition

Liosta nó cúpla clibeanna, m.sh. [Tags.staticFiles, tags.Models]. Seiceálfar seiceálacha córas:ref: cláraithe sna clibeanna roghnaithe <registering-labeling-checks>`le haghaidh earráidí sula ndéantar an t-ordú a fhorghníomhú. Is féidir an luach `'__all__'`` a úsáid chun a shonrú gur chóir gach seiceáil chórais a dhéanamh. Is é luach réamhshocraithe '__all__'.

BaseCommand.styleLink to this definition

Tréith sampla a chuidíonn le aschur daite a chruthú agus tú ag scríobh chuig stdoutstderr. Mar shampla:

Code
self.stdout.write(self.style.SUCCESS("..."))

Féach: tagairt: syntax-coloring chun foghlaim conas an pailéad dathanna a mhodhnú agus na stíleanna atá ar fáil a fheiceáil (bain úsáid as leaganacha uachtaracha de na “róil” a thuairiscítear sa chuid sin).

Má théann tú ar an rogha:: - no-color` agus tú ag rith d'ordú, cuirfidh gach glao `self.style () `ar ais an sreang bunaidh gan daite.

BaseCommand.suppressed_base_argumentsLink to this definition

Na roghanna ordaithe réamhshocraithe chun cosc a chur san aschur cabhrach. Ba chóir go mbeadh sé seo ina shraith d'ainmneacha roghanna (m.sh. `- verbosity`). Tá na luachanna réamhshocraithe do na roghanna faoi chosc ritheanta fós.

ModhannaLink to this heading

BaseCommand has a few methods that can be overridden but only the handle() method must be implemented.

BaseCommand.create_parser(prog_name, subcommand, **kwargs)Link to this definition

Filleann sé sampla CommandParser, arb ion:class: ~ArgParse.ArgumentParser fo-aicme le cúpla saincheapadh do Django.

Is féidir leat an sampla a shaincheapadh tríd an modh seo a shárú agus glaoch ar super () `` le paraiméadair ``kwargs ``o:class: ~ArgParse.ArgumentParser.

BaseCommand.add_arguments(parser)Link to this definition

Pointe iontrála chun argóintí parser a chur chun argóintí líne ordaithe a chuirtear chuig an ordú a láimhseáil Ba cheart d'orduithe saincheaptha an modh seo a shárú chun argóintí suímh agus roghnacha a ghlacann an t-ordú leis a chur leis Ní gá glaoch ar super () ``nuair a dhéantar `BaseCommand a fho-aicmiú go díreach.

BaseCommand.get_version()Link to this definition

Filleann sé an leagan Django, ar chóir go mbeadh sé ceart do gach ordú Django ionsuite. Is féidir le horduithe a sholáthraíonn an úsáideoir an modh seo a shárú chun a leagan féin ar ais.

BaseCommand.execute(*args, **options)Link to this definition

Déanann iarracht an t-ordú seo a fhorghníomhú, ag déanamh seiceálacha córais más gá (mar atá á rialú ag an tréith: attr: requires_system_checks). Má ardaíonn an t-ordú a:exc: CommandError, déantar é a idirghabháil agus a phriontáil chuig stderr.

BaseCommand.handle(*args, **options)Link to this definition

An loighic iarbhír an ordaithe. Caithfidh fo-aicmí an modh seo a chur i bhfeidhm.

Féadfaidh sé teaghrán a chur ar ais a phriontáilfear chuig stdout` (fillte le BEGIN; ``agus ``COMMIT; más: attr: output_transaction `True).

BaseCommand.check(app_configs=None, tags=None, display_num_errors=False, include_deployment_checks=False, fail_level=checks.ERROR, databases=None)Link to this definition

Úsáideann sé creat seiceála an chórais chun an tionscadal iomlán Django a iniúchadh le haghaidh fadhbanna a Ardaítear fadhbanna tromchúiseacha mar a:exc: Commanderror; aschur rabhaidh chuig stderr`; aschuirtear mionfhógraí chuig stdout`.

Má tá `app_configs agus tags` araon `None ``, déantar gach seiceáil chórais seachas seiceálacha imscartha agus seiceálacha a bhaineann le bunachar sonraí. Is féidir le `tags a bheith ina liosta clibeanna seiceála, cosúil le comhoiriúnacht ``nó `samhlacha.

Is féidir leat include_deployment_checks=true a rith chun seiceálacha imscartha a dhéanamh freisin, agus liosta d'ainmneacha bunachar sonraí sna databases` chun seiceálacha a bhaineann le bunachar sonraí a reáchtáil ina gcoinne.

BaseCommand.get_check_kwargs(options)Link to this definition

Supplies kwargs for the call to check(), including transforming the value of requires_system_checks to the tag kwarg.

Override this method to change the values supplied to check(). For example, to opt into database related checks you can override get_check_kwargs() as follows:

Code
def get_check_kwargs(self, options):
    kwargs = super().get_check_kwargs(options)
    return {**kwargs, "databases": [options["database"]]}

Fo-aicmí BaseCommandLink to this heading

class AppCommandLink to this definition

Ordú bainistíochta a thógann lipéad feidhmchláir suiteáilte amháin nó níos mó mar argóintí, agus a dhéanann rud éigin le gach ceann acu.

Seachas: meth: ~BaseCommand.handle a chur i bhfeidhm, ní mór do fho-aicmiúint:meth: ~appCommand.handle_app_config a chur i bhfeidhm, a ghlaofar uair amháin do gach feidhmchlár.

AppCommand.handle_app_config(app_config, **options)Link to this definition

Déan gníomhartha an ordaithe le haghaidh app_config, a bheidh an:class: ~django.apps.appconfig sampla a fhreagraíonn do lipéad feidhmchláir a thugtar ar an líne ordaithe.

class LabelCommandLink to this definition

Ordú bainistíochta a thógann argóint treallach amháin nó níos mó (lipéid) ar an líne ordaithe, agus a dhéanann rud éigin le gach ceann acu.

Seachas: meth: ~BaseCommand.Handle a chur i bhfeidhm, ní mór do fho-aicmi:meth: ~labelCommand.handle_label a chur i bhfeidhm, a ghlaofar uair amháin do gach lipéad.

LabelCommand.labelLink to this definition

Sreang a chuireann síos ar na hargóintí treallacha a chuirtear chuig an ordú Úsáidtear an teaghrán i dtéacs úsáide agus teachtaireachtaí earráide an ordaithe. Réamhshocraithe go `lipéad.

LabelCommand.handle_label(label, **options)Link to this definition

Déan gníomhartha an ordaithe le haghaidh lipéad`, arb é an teaghrán mar a thugtar ar an líne ordaithe.

Eisceachtaí ordaitheLink to this heading

exception CommandError(returncode=1)Link to this definition

Rang eisceachta a léiríonn fadhb agus ordú bainistíochta á fhorghníomhú.

Má ardaítear an eisceacht seo le linn ordú bainistíochta a fhorghníomhú ó chonsól líne ordaithe, gabhfar é agus déanfar é teachtaireacht earráide priontáilte go deas chuig an sruth aschuir chuí (ie, stderr `); mar thoradh air sin, is é an eisceacht seo a ardú (le cur síos ciallmhar ar an earráid) an bealach is fearr chun a léiriú go bhfuil rud éigin mícheart ag forghníomhú ordaithe. Glacann sé leis an argóint roghnach ``returncode ``chun an stádas imeachta a shaincheapadh don ordú bainistíochta imeacht leis, ag baint úsáide as: func: sys.exit.

Má ghlaofar ordú bainistíochta ón gcód trí:func: ~django.core.management.call_command, is fútsa atá sé an eisceacht a ghabháil nuair is gá.