ランダムな文字列を生成すると(一意のコードの場合)、同じランダムな文字列が返され続けます

ドラン開発

私が持っているTest各テストが一意ランダムに生成された文字列によって識別することができたモデルを:

from django.utils.crypto import get_random_string

class Test(models.Model):
    code_length = 7
    code = models.CharField(max_length=code_length, editable=False, default=generate_id(code_length))
    name = models.CharField(max_length=100, default=None)
    user = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return "Code: {} | Username: {} | Test: {}".format(self.code, self.user.username, self.name)

def generate_id(length):
    return get_random_string(length)

Tbh、以前はうまく機能していました。DjangoをDjango1.xからDjango3.xに更新した後、「バグアウト」し始めました。またTest、django-adminでモデルのすべてのレコードをクリアしました(テスト用に新しくクリーンなデータベースが必要です) 。今、私が新しいものを作成しようとするときはいつでもTest、それcodeTests私が作成する他のすべての新しいものと文字通り同じです:

ここに画像の説明を入力してください

私が行った2つの変更以外は何もしていないと思います。何か案は?どうもありがとう!

ウィレムヴァンオンセム

関数を呼び出さないでください。そうすると、デフォルトで関数呼び出し結果が取得されます。

したがって、関数を作成します。

from django.utils.crypto import get_random_string

CODE_LENGTH = 7

def generate_id_length():
    return get_random_string(CODE_LENGTH)

class Test(models.Model):
    code = models.CharField(
        max_length=CODE_LENGTH,
        editable=False,
        #          no parenthesis ↓
        default=generate_id_length
    )

クラスのCODE_LENGTHに移動したくない場合はTest、次を使用できます。

from django.utils.crypto import get_random_string

def generate_id_length():
    return get_random_string(Test.code_length)

class Test(models.Model):
    code_length = 7
    code = models.CharField(
        max_length=CODE_LENGTH,
        editable=False,
        #          no parenthesis ↓
        default=generate_id_length
    )

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MySQL-列がNULLの場合、ランダムな一意のコードを生成します

分類Dev

nonce(oauth)として使用するランダムな一意の文字列生成

分類Dev

ランダムな一意の英数字文字列を生成するVBA

分類Dev

Python 3でランダムな長さのランダムな一意の文字列を生成する最速の方法

分類Dev

900万の一意のランダムな数値のみの文字列を生成します

分類Dev

一意のランダムな文字列を生成し、phpを介してさまざまなhtmlタブにそれぞれを使用します

分類Dev

IDとして保存するランダムな文字列を生成しますが、ページが更新されるたびに変更され続けますか?

分類Dev

MySqlテーブル列の1つに一意のランダムな文字列を生成するにはどうすればよいですか?

分類Dev

一連の数値を一意のランダムに表示される文字列に変換します

分類Dev

繰り返さない小枝のランダムな文字列を生成します

分類Dev

C#で4000万文字の英数字の一意のランダム文字列を生成するより効率的な方法はありますか?

分類Dev

一意でランダムな6文字の英数字コードを生成するJavaプログラム

分類Dev

文字列のリストのランダムな要素を印刷すると、常に同じ文字列が得られます

分類Dev

MySQLを使用してランダムで一意の8文字の文字列を生成する

分類Dev

シード可能なデータのランダムな文字列を生成する

分類Dev

どちらがリードするかを示さずに配列を印刷すると、ランダムコードの文字列になります

分類Dev

少数の文字でランダムな文字列を生成する

分類Dev

私の場合はランダムな文字を生成します

分類Dev

暗号的にランダムな一意の文字列

分類Dev

投稿のIDをランダムな(ただし一意の)文字列にする

分類Dev

多数の一意のランダムな組み合わせを生成する

分類Dev

文字列内でランダムな長さのランダムな特定の文字を生成する

分類Dev

生成されたランダムな文字列を出力します

分類Dev

ランダムな文字列の配列を生成する

分類Dev

文字列リストからランダムに一意のアイテムを生成する

分類Dev

特定の番号に対して毎回同じランダムな一意の番号を生成する

分類Dev

文字列内で互いに続く2つの同じランダムな文字を削除する方法-PHP

分類Dev

総当たり攻撃なしでランダムで一意の4桁のコードを生成します

分類Dev

Pythonでランダムな文字列文字のランダムなシーケンスを生成する方法

Related 関連記事

  1. 1

    MySQL-列がNULLの場合、ランダムな一意のコードを生成します

  2. 2

    nonce(oauth)として使用するランダムな一意の文字列生成

  3. 3

    ランダムな一意の英数字文字列を生成するVBA

  4. 4

    Python 3でランダムな長さのランダムな一意の文字列を生成する最速の方法

  5. 5

    900万の一意のランダムな数値のみの文字列を生成します

  6. 6

    一意のランダムな文字列を生成し、phpを介してさまざまなhtmlタブにそれぞれを使用します

  7. 7

    IDとして保存するランダムな文字列を生成しますが、ページが更新されるたびに変更され続けますか?

  8. 8

    MySqlテーブル列の1つに一意のランダムな文字列を生成するにはどうすればよいですか?

  9. 9

    一連の数値を一意のランダムに表示される文字列に変換します

  10. 10

    繰り返さない小枝のランダムな文字列を生成します

  11. 11

    C#で4000万文字の英数字の一意のランダム文字列を生成するより効率的な方法はありますか?

  12. 12

    一意でランダムな6文字の英数字コードを生成するJavaプログラム

  13. 13

    文字列のリストのランダムな要素を印刷すると、常に同じ文字列が得られます

  14. 14

    MySQLを使用してランダムで一意の8文字の文字列を生成する

  15. 15

    シード可能なデータのランダムな文字列を生成する

  16. 16

    どちらがリードするかを示さずに配列を印刷すると、ランダムコードの文字列になります

  17. 17

    少数の文字でランダムな文字列を生成する

  18. 18

    私の場合はランダムな文字を生成します

  19. 19

    暗号的にランダムな一意の文字列

  20. 20

    投稿のIDをランダムな(ただし一意の)文字列にする

  21. 21

    多数の一意のランダムな組み合わせを生成する

  22. 22

    文字列内でランダムな長さのランダムな特定の文字を生成する

  23. 23

    生成されたランダムな文字列を出力します

  24. 24

    ランダムな文字列の配列を生成する

  25. 25

    文字列リストからランダムに一意のアイテムを生成する

  26. 26

    特定の番号に対して毎回同じランダムな一意の番号を生成する

  27. 27

    文字列内で互いに続く2つの同じランダムな文字を削除する方法-PHP

  28. 28

    総当たり攻撃なしでランダムで一意の4桁のコードを生成します

  29. 29

    Pythonでランダムな文字列文字のランダムなシーケンスを生成する方法

ホットタグ

アーカイブ