0

ユーザーの作成または更新時にユーザー名が指定されていない場合は、ユーザー名を生成する必要があります。

pre_save信号の使用について考えました

@receiver(pre_save, sender=User, dispatch_uid='autocreate_username')
def create_username(sender, instance, **kwargs):
    if instance.username == None:
        instance.username = generate_random_username()

しかし、ユーザーはシグナル呼び出しの前に挿入されているようです。

>>> user = User(email='machin@chouette.com')
>>> user.save()

Traceback (most recent call last):  
...  
IntegrityError: (1062, "Duplicate entry '' for key 'username'")
4

1 に答える 1

0

そうではない。

デフォルトusernameは空の文字列に設定されていましたが、Noneそうではありませんでした

if not instance.username:

私のシグナルコールバックで

于 2013-08-03T09:46:24.100 に答える