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()
        # ...

The option (delete in our example) is available in the options dict parameter of the handle method. See the argparse Python documentation for more about add_argument usage.

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

If your command defines mandatory positional arguments, you can customize the message error returned in the case of missing arguments. The default is output by argparse ("too few arguments").

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á.