2015-02-03 19 views
8

Ho creato un comando personalizzato in django per eliminare un account impostato in CMD, ma voglio essere in grado di eseguire il file python e chiedere alla linea di comando di richiedere il numero dell'account da eliminare, quindi cancellarlo. Questo è quello che ho finora.Richiesta di input dal comando personalizzato django?

from django.core.management.base import BaseCommand, CommandError 
from accounts.models import client 

class Command(BaseCommand): 

    args = '<client_id client_id ...>' 
    help = 'Closes the specified account.' 

    def handle(self, *args, **options): 
     for client_id in args: 
      try: 
       x = client.objects.get(pk=int(client_id)) 
      except client.DoesNotExist: 
       raise CommandError('Client "%s" does no exist' % client_id) 

      x.delete() 

      self.stdout.write('Successfully closed account "%s"' % client_id) 

risposta

9

Utilizzare il built-in funzione raw_input():

def handle(self, *args, **options): 
    if args: 
     ids = args 
    else: 
     ids = raw_input('Enter comma-delimited list of ids: ').split(',') 
    for client_id in ids: 
     ... 
+3

'ingresso()' in Python 3 http://stackoverflow.com/questions/954834/how-do-i-use-raw -input-in-python-3 –

Problemi correlati