Hogyan, hogy a parancsokat, Alexander Koshelev, 0

Hogyan, hogy parancsokat helyesen

A hasznosságát a képességét, hogy saját parancsokat manage.py számára írtam egy meglehetősen hosszú ideig. De mivel tudom használni őket rendszeresen, mivel abban az időben az általa kifejlesztett „szabályok az etikett” az írás ezeket a parancsokat. Egyikük - a parancs végrehajtása nem várhatjuk el, hogy az összes lehetőséget, amelyek már regisztrált még egy alapértelmezett értéket, abban az esetben van.

Azt mutatnak példát. Egy tipikus csapat:

Ha ezt a parancsot a parancssorból megadása nélkül --foo opciót. akkor minden rendben lesz - optparse kedves helyettesíti alapérték, és ez lesz könnyű használni.

De való elindítása van más út is - egy másik modul call_command funkciója django.core.management. És ebben az esetben, paraméterek és a paraméterként átadott a funkció, és nem veszi figyelembe az alapértelmezett értékek meghatározott option_list. Ie ha a hívás call_command ( „foobar”) nincs ize opciót. akkor a kód megtöri a KeyError.

Ha egy csapat, és azt is írta a megoldás nagyon egyszerű.

Akkor sem regisztrálni, hogy végre az alapértelmezett paramétereket és értékeket érveket a módszer. Íme:

Vagy, ne vegye be a opció értéke közvetlenül a kulcsot a szótárban, a „hedge” a get:

De mint látható, ez a két módszer arra kényszerülnek, hogy újra be az alapértelmezett érték, ami nem kényelmes és eredményez nem kívánt hibák.

De ha a csapat egy másik alkalmazás, akkor van ítélve az ilyen felhasználás egyértelműen meg kell határozni az összes lehetőséget, és még azok is, defaults, hogy teljesen elégedett. Nem kényelmes.

Jegy és a patch már ott van, így talán egy idő után ez a kellemetlen funkciót hívja el csapatok. Megvárjuk.

Kapcsolódó cikkek