2017-10-26 7 views
0

O.K.私はこの問題の頭痛があります。私は別のサイト(非django)にログインオプションをつけなければならず、私はそれをdjangoに基づく1つの新しいWebサイトに入れたいと思っています。djangoに既存のユーザーデータベース(非django)を追加する簡単な方法

これら2つのユーザデータベースのそれぞれは、カラム(ユーザ名、パスワード、電子メール)を含むテーブルで構成されています。

問題は、私はDjangoが非常に厳格であることを知っているので、DjangoのUserテーブルにコピーすることはできません。そのため、既存のユーザーは何もしないでサイトにログインできます変更されました。

これを行うにはどのようなdjango/pythonの方法はありますか?

ユーザーモデルに外部キーを使用するアプリを作成しようと考えていました。ユーザモデル内では、2人のユーザ(database_1、database_2)を作成するので、データベース1のユーザがログインするたびに、 JohnSmith、彼はdatabase_1ユーザとして接続されますが、もしJessicaSimpsonがデータベース1に参加するのであればJessicaSimpsonもそうです。私はちょうど何らかの方法でシステム認証アプリを作成しています...これは正しい考えですか?専門家から聞くのが大好きです。おかげモデルで

:ビューで

from django.db import models 
from django.contrib.auth.models import User, Group 

# Create your models here. 

class New_users(models.Model): 
    new_user_id = models.ForeignKey(User, unique=False) 
    username = models.CharField(max_length=25) 
    password = models.CharField(max_length=25) 
    email = models.CharField(max_length=25) 

from django.shortcuts import render 
from django.http import HttpResponse 

# Create your views here. 

def home(request): 

     if request.method == 'POST': 

     #if username and password from New_users are ok... 
     login()#User where id is the same blah blah.... 
+0

他のデータベースから既存のユーザーレコードをコピーできなかった理由はわかりません。いくつかのフィールドにダミーの値を入れるだけです。 –

+0

@Wyatt私はパスワードに関して多くの問題を抱えていると思います... –

+0

パスワードがどのように格納されているか知っていれば、一時的なカスタムパスワードハッシャーで回避することができます。ユーザーはパスワードをリセットします。 –

答えて

0

は、あなただけの既存のユーザーをループしてcreate_user関数を呼び出すことによって新しいデータベースに既存のユーザーを移行できますか?これは、現在のパスワードを平文に戻すことができると仮定して、パスワードハッシュとすべてを処理します。

+0

パスワードをプレーンテキストに戻すことは不可能(または少なくとも非常に難しい)でなければなりません。ハッシュされたパスワードをコピーし、Djangoに組み込まれているハッシャを使用するか、カスタムデータベースを作成する必要があります(以前のデータベースにパスワードがハッシュされていることがわかっていると仮定します)。 –

2

私は専門家です。古いユーザーを新しいDBに追加し、ランダムなパスワードを入力します。また、古いハッシュされたパスワードでold_usersという表を作成します。

これらの古いユーザーは、新しいアプリを訪れたときに古いpwを入力する必要があります(ハッシュ方法を知っておく必要があります)。成功した場合は古いpwを設定します

これはあまりにも問題がある場合は、すべての古いユーザーにメール(当然のことながら、自分のメールアドレスがある)とchange_passwordフォームへのリンクを送るスクリプトを書くことができます。 django resetパスワード機能を拡張するのはかなり簡単です。それは良いことです。

関連する問題