・OS:windows7x86
・Python 3.8.10
・django:3.2.6
・エディタ:vscode
settings.py
python
1DATABASES = { 2 'default': { 3 'ENGINE': 'django.db.backends.sqlite3', 4 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 5 }, 6 'database2': { 7 'ENGINE': 'django.db.backends.oracle', 8 'NAME' : '192.168.1.1:1521/testc', 9 'USER': 'test', 10 'PASSWORD': 'test', 11 }, 12} 13
と2つのDBを参照させてアプリを作成しようとしています。
views.py
python
1#(1) user = authenticate(request, username=username2, password=password2) 2#(2) user = DatabaseTwo.objects.db_manager("database2").get(EMP_CD=username2, PASSWD=password2) 3 4if user is not None: 5 login(request, user) #(3) 6 return redirect('list')
(1)の場合は(3)のログイン関数が処理されるのですが、(2)の場合、画面に
ValueError at /
The following fields do not exist in this model, are m2m fields, or are non-concrete fields: last_login
と表示され、上手く処理されないでいます。
「user」をprint(user)でデバックしてみると、
DatabaseTwo object (demo)
と存在するユーザ名「demo」は表示されるのですが、(3)のlogin関数で上手くいっていなさそうです。
(1)の場合はprint(user)でデバックしてみると、
demo
と存在するユーザ名が(2)のときと違う形式で表示されます。
どのようにしたら(2)の場合でもlogin関数が利用できるようになりますでしょうか。
どなたかご教授宜しくお願い致します。
あなたの回答
tips
プレビュー