2

問題を解決したいのですが、答えを探していましたが、解決策が見つかりません。

モデルがあるとしましょう:

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

フィールドは 1 つだけです。私がやりたいことは、管理パネルに追加のボタンを作成し、このボタンを使用してデータベースに 100 個の AccessCode を自動的に作成することです。したがって、2 つの質問があります。

  1. 管理パネルでカスタムボタンを作成してアクションを実行するにはどうすればよいですか?
  2. あるモデルの 100 個のオブジェクトを 1 ステップで自動的に作成する方法は?

key_generator は、ランダムな文字列をデフォルト値として生成するカスタム関数です。

4

1 に答える 1

1

bulk_createDjango 1.4 で導入されたメソッドを使用できます。

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.

管理ページにアクションを追加するには、この回答とその方法の詳細を確認してください。

于 2013-02-23T23:01:38.763 に答える