0

私はdjangoが初めてで、私が試みている概念は非常に単純です。カスタムモデルを作成しました(事前定義されたモデルを拡張したくありません)。そして、このコードを使用して、ログインを認証しようとしました:

Models.py : (ここではサンプル データのみを提供しています。これは私が使用する実際のデータではありません。クライアントは、AbstractBaseUser などの組み込みモデルを使用することを望んでいません。)

from django.db import models
#from django.contrib.auth.models import User

class logindata(models.Model):
    fname= models.CharField(max_length=30)
    lname = models.CharField(max_length=30)
    uname = models.CharField(max_length=30)
    password = models.CharField(max_length = 30)

Views.py

def auth_view(request):
username = request.POST.get('username','')
password = request.POST.get('password','')
user =auth.authenticate(uname=username, password=password)
if user is not None:    
    auth.login(request, user)
    return HttpResponseRedirect('/accounts/loggedin',{'user':user})
else:
    return HttpResponseRedirect('/accounts/invalid')

def loggedin(request):
    return render_to_response('loggedin.html',
                              {'name':request.user.uname})

私の質問はとても簡単です。デフォルトのモデルではなく、カスタム モデル (logindata) を認証して確認したい。それ、どうやったら出来るの ??

4

2 に答える 2

1

カスタム ユーザー モデルを作成する場合、Django には、django.contrib.auth.models.AbstractBaseUser拡張して使用できるモデルが用意されています。Django のドキュメントには、それ専用のセクション全体があります

Django の User モデルに完全に満足していて、追加のプロファイル情報を追加したい場合はdjango.contrib.auth.models.AbstractUser、カスタム プロファイル フィールドをサブクラス化して追加するだけです。このクラスは、デフォルトの完全な実装をUser抽象モデルとして提供します。

github でコードを調べて、何を拡張するかを確認できます。

于 2013-10-09T06:27:42.567 に答える