5

ベストプラクティスを探していましたが、見つかりませんでした。他の人が使用する必要のある解決策を見つけることさえできませんでした。

他のデータ(名と姓)に基づいてユーザーのユーザー名を生成する必要があります。一意のユーザー名を取得するまで、オプションで末尾に整数を追加します。

私はモデルでそれを行うことを強く好みます。それを行うための標準的な方法はありますか?それともフォームでのみ適切ですか?シグナルだけでなく、さまざまなモデルメソッドのオーバーロードを調査してきUserましたが、追加できる適切な場所が見つかりませんでした。

4

1 に答える 1

4

考えられる解決策の1つは、pre_saveシグナルを使用することです。

def my_callback(sender, **kwargs):
    obj = kwargs['instance'] 
    if not obj.id:
       username = get_unique_username(obj) # method that combines first name and last name then query on User model, if record found, will append integer 1 and then query again, until found unique username
       obj.username = username
pre_save.connect(my_callback, sender=User)
于 2012-07-25T12:05:16.243 に答える