通过Django管理命令创建虚拟模型

时间:2019-01-26 12:58:28

标签: python-3.x django-models django-1.11 django-management-command

我正在尝试为“自定义Django管理命令”编写脚本。该脚本用于创建订单(模型),每个订单都分配有1到10个服务器之间的随机数量。到目前为止,我有:

class Command(BaseCommand):
    help = 'etc...'

def add_arguments(self, parser):
    parser.add_argument('dummy-orders', type=int, help='Number of dummy-orders to create')
    parser.add_argument('servers-min', type=int, help='Minimum random amount of servers')
    parser.add_argument('servers-max', type=int, help='Maximum random amount of servers (max=10)')

def handle(self, *args, **options):
    dummy_orders = options['dummy-orders']
    servers_min = options['servers-min']
    servers_max = options['servers-max']

    assert dummy_orders <= 3000
    self.check_input_integers(servers_min, servers_max, 'Servers')

    for i in range(dummy_orders):
        servers_random = randint(servers_min, servers_max)
        #test = Order.objects.create(servers_num=servers_random)
        model = Order
        #model = Order(servers_num=servers_random)
        #user = Order.objects.get_or_create()
        print(model)

基本上,每个订单还应具有与之关联的随机数量的服务器。最初没有servers_num字段,我必须在其中添加模型。我面临的问题是如何简单地遍历range(dummy_orders)并为其分配随机数的服务器。有任何想法吗?由于这仅用于测试目的,我希望我也必须以某种方式删除所有这些新条目?

1 个答案:

答案 0 :(得分:0)

真的很简单,我只是像正常情况一样创建了一个模型对象(model = DummyOrder(servers_num=servers_random, luns_num=luns_random))。这似乎足以满足要求。