我想解决我的问题,我正在寻找答案,但我找不到任何解决方案。
假设我有一个模型:
class AccessCode(models.Model):
access_code = models.CharField(max_length=100, verbose_name='Access code',
unique=True, default=key_generator)
def __str__(self):
return self.access_code
def __unicode__(self):
return self.access_code
只有一个领域。我喜欢做的是在管理面板中创建额外的按钮,并使用此按钮在我的数据库中自动创建100个AccessCodes。 所以有两个问题:
key_generator是我的自定义函数,用于生成随机字符串作为默认值。
答案 0 :(得分:1)
您可以使用Django 1.4中引入的bulk_create
方法,
AccessCode.objects.bulk_create([AccessCode() for i in range(100)])
然而,这种方法存在一些问题,来自django doc
但是有一些警告:
- The model’s save() method will not be called, and the pre_save and post_save signals will not be sent. - It does not work with child models in a multi-table inheritance scenario. - If the model’s primary key is an AutoField it does not retrieve and set the primary key attribute, as save() does.
要向管理页面添加操作,请查看this answer,详细了解如何操作。