2012-04-18 18 views
0

私はドキュメントを読んでいて、2番目のデータベースを同期させて準備を整えました。私は、.using('database')を使ってdjangoにどのデータベースを使用すべきかを伝えるセクションを見つけました。デフォルト以外のデータベースにユーザーを作成するにはどうすればよいですか?

:私はコードのそのビットを試してみました

User.objects.using('user_data').create_user(username=username, password=password, email='') 

が出て、私はこのエラーを得た:思考の同じ行で

は、私はそれがTHIのように作成されると、それはユーザーを保存する必要がありジャンゴを表示しようとしました
AttributeError at /signup/ 

'QuerySet' object has no attribute 'create_user' 

私はdjangoに、デフォルトのdbではなくuser_dataに保存する必要があるということとは別のやり方があるかどうか不思議です。私はかなり混乱していると私は見つけるので、私はルータを使用しないことを好むだろう。ありがとう。

For example, say you have a custom manager method that touches the database -- User.objects.create_user(). Because create_user() is a manager method, not a QuerySet method, you can't do User.objects.using('new_users').create_user(). (The create_user() method is only available on User.objects, the manager, not on QuerySet objects derived from the manager.)

強調鉱山:Using managers with multiple databasesのマニュアルに従ってエラー'QuerySet' object has no attribute 'create_user'について

答えて

3

、。あなたがこれを実行する必要があります。

User.objects.db_manager('new_users').create_user(username=username, password=password, email='') 

また、あなたはこれを試すことができます(テストしていません):Selecting a database for save()ため

new_user = User() 
new_user.username = username 
new_user.password = password 
new_user.email = '' 
new_user.save(using='user_data') 

詳細情報Djangoのドキュメントインチ

+0

それでは、Authincate()を使用するとどうなりますか?またはlogin()?またはlogout()あまりにも私は推測する。私はドキュメントにあった3つの方法を試してみましたが、どれも希望の結果を出すようには見えませんでした。 'user = authenticate(username = username、password = password、using = 'user_data')'はエラーを返さないが、望む効果を与えない – city

0

.using('database')はクエリセットを返します。したがって、この関数を使用してクエリを取得するだけです。 ()を作成し使用する場合は、次のようなdb_manager()を経由して、それを使用する必要があります。詳細についてはmulti-db

User.objects.db_manager('database').create_user(...) 

は見てみましょう。

関連する問題