Djangoでカスタム認証を行う方法をオンラインで検索しているときに、私はthisとthisという記事を見ました。これらの記事の両方で同じ指示が指定されています。現在私はこれのようなものを持っています。バックエンドでのカスタム認証 - 保存せずに実行時にユーザを作成する
class Client(models.Model):
email = models.EmailField(unique=True, max_length=100)
password = models.CharField(max_length=128)
はその後、別のpythonファイルに私はこれが
from .models import Client
class ClientAuthBackend(object):
def authenticate(self, username=None, password=None):
try:
user = Client.objects.get(email=username)
return user
if password == 'master':
# Authentication success by returning the user
return user
else:
# Authentication fails if None is returned
return None
except Client.DoesNotExist:
return None
def get_user(self, user_id):
try:
return Client.objects.get(pk=user_id)
except Client.DoesNotExist:
return None
私はちょうどジャンゴを使用して開始し、一種の私の現在のプロジェクトであるため、DBの相互作用のためのモデルのセクションをスキップしている必要があり(最初の記事からの引用)I何らかの理由でRAWとカスタムSQLを使用しています。 私の質問はどこ
user = Client.objects.get(email=username)
からそのユーザーを取得するんです。データベースに登録する必要がありますか? 私は何をしたい、実行時にユーザーを作成し、上記のClient.DoesNotExist
例外を返します。この
#The following creates and saves a user in the db
u =User.objects.create_user('john', '[email protected]', 'johnpassword',cust_address="my_custom_address",cust_msg="Users custom message")
をやってみましたdatabase.Iに保存しないことです。