私はこのコードを使用してサインアップするとサービスを無料で10ドル手渡すクーポンジェネレータを作成しています。ユーザーベースは非常に小さく、一度に10個以上のクーポンを渡す可能性は低いです。Django Admin:TabularInlineのランダムキーで、ランダムではありません
新しいマーケティングキャンペーンを作成する場合、管理者にはTabularInlineに5つのクーポンが与えられ、[別のクーポンを追加]ボタンでさらに作成するオプションが表示されます。しかし、クーポン6以上はすべてクーポン5と全く同じランダムコードを持っています。 Djangoは実際にサーバから新しいサンプルオブジェクトを要求していないのですが、最後に見たものを複製するだけです。
これを実行するコードは次のとおりです。generate_code()
が良く、ランダムな文字列を生成し、機能である
class Coupon(models.Model):
campaign = models.ForeignKey(Campaign)
code = models.CharField(max_length = 32, blank=False, null=False, default=generate_code)
redeemed_by = models.ForeignKey(User, null = True, blank = True)
。 Djangoの管理者はdefault
のフィールドクラスの設定を尊重しなければならないと思います。最初のnが管理者側によって生成されましたが、クライアント要求によって構築されたものは生成されません。
Djangoにサーバー上のオブジェクトを作成させて取得させる方法はありますか?インラインでコードを作成するために自分のページをハックする必要がありますか?それとももっとスマートな方法がありますか?
ランダムクーポンのようなサウンドは、Djangoが書いたカスタムコードによって作成されます。なぜこれをインラインで使うのですか?ランダム生成クーポン以外の他の機能はありますか?たぶん、新しく生成されたクーポンを作成して表示する、カスタムビルドajax関数を作成することを検討する必要があります。 –
@ dan-klasson:質問を更新して内訳を表示しました。 Djangoの管理者は、 'models.Field'の' default'引数を正しく守っていません。私はここで何か間違っているかどうかを判断しようとしています。 –