2016-12-13 4 views
0

Je déménage à Django1.10 de django 1.6.11 (je sais que c'est très vieux. Mais enfin passer à la dernière version)Comment créer label_command ind django1.10

Mes commandes de gestion rompent.

class Command(LabelCommand): 
    label = 'filename' 

    def add_arguments(self, parser): 
     parser.add_argument('filename', nargs='+', type=str) 

    def handle_label(self, filename, **options): 
     print filename 

Est-ce la bonne façon? Ce qui précède ne fonctionne pas comme prévu à savoir

+0

La méthode doit s'appeler 'handle', pas' handle_label'. Il sera plus facile de passer à 1,8 LTS au lieu de sauter directement à 1,10. Il vaut même la peine de tester avec 1.7 pour vous assurer de ne manquer aucun avertissement de dépréciation. – Alasdair

+0

ce que vous entendez par «rupture», pouvez-vous donner l'erreur que vous obtenez? –

Répondre

1

Pour moi qui suit travaillé: changement

parser.add_argument('filename', nargs='+', type=str) 

à

parser.add_argument('args', metavar=self.label, nargs='+') 

une ligne que je copiais directement django/django/core/management/base.py lors de la fixation mes LabelCommands lors de la migration de 1,7 à 1.10.7.

Bien que ce que vous pouvez faire est d'ajouter remplacer la ligne ci-dessus avec

super(Command, self).add_arguments(parser) 

pour maintenir la compatibilité vers l'avant.