2017-01-30 3 views
4

Je ne trouve pas cela dans les docs. Quand je cours python manage.py collecstatic --no-input cela signifie-t-il qu'il répondra "oui" à n'importe quelle invite qui surgirait dans le processus? La même chose pour python manage.py migrate --no-input.Django manage.py --no-entrée. Oui ou non?

+1

Je pense en général, il est de répondre 'yes', mais je l'ai remarqué avant les bugs avec elle ne pas enlever rassis types de contenu. https://code.djangoproject.com/ticket/25036 – wim

Répondre

8

Vous pouvez toujours vérifier le code source django. C'est, vous le savez, open source.

Pour collectstatic:

message.append(
     'Are you sure you want to do this?\n\n' 
     "Type 'yes' to continue, or 'no' to cancel: " 
    ) 

    if self.interactive and input(''.join(message)) != 'yes': 
     raise CommandError("Collecting static files cancelled.") 

Donc, pour Collect statique, si vous définissez --no-input il sera mis interactive-False et, comme vous pouvez le voir ci-dessus, répondra yes à la question pour vous.

Pour migrer, il est beaucoup plus difficile à cause de la signalisation django. La gestion migrate lui-même ne pose pas de questions, mais d'autres applications installées peuvent se connecter dans le pre_migrate_signal ou post_migrate_signal et gérer l'interactivité à leur manière. La plus commune que je connaisse est contenttypes

Pour contenttypes, interactive signifie n °

 if interactive: 
      content_type_display = '\n'.join(
       ' %s | %s' % (ct.app_label, ct.model) 
       for ct in to_remove 
      ) 
      ok_to_delete = input("""The following content types are stale and need to be deleted: 

%s 

Any objects related to these content types by a foreign key will also 
be deleted. Are you sure you want to delete these content types? 
If you're unsure, answer 'no'. 

    Type 'yes' to continue, or 'no' to cancel: """ % content_type_display) 
     else: 
      ok_to_delete = False 
+0

Merci l'homme. Cela devrait être dans les docs. – alejoss