0

私はdjango devに入ろうとしていますが、これにはかなりの初心者です...ここに私の問題があります:

私は持っている :

  • App1 - サイトのパブリケーションを処理するため
  • ビュー 1
  • テンプレート 1 管理ビュー 1: index.html

  • App2 名前付きメンバー - ユーザーの管理用

  • ビュー 2
  • view2 を管理するテンプレート 2: login.html

基本的に、1 番目のグループは私のメイン ページであり、2 番目のグループはユーザーのログイン フォームです。多くのサイトで見られるように、サイトのメイン ページの右側のメニューにログイン フォームを埋め込みたいと考えています。

  • ビュー 1 / テンプレート 1 は base.html からコンテンツ ブロックを拡張します

    def MainHomePage(request):
    homepage = HomePage.objects.get(pk=1)
    context = {'homepage': homepage}
    return render_to_response('index.html', context, context_instance=RequestContext(request))
    
  • ビュー 2 / テンプレート 2 は、ログイン フォームを使用して base.html から right_menu を拡張します。

    def LoginRequest(request):
    if request.user.is_authenticated():
        return HttpResponseRedirect('/profile/')
        if request.method =='POST':
        form =LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            member = authenticate(username=username, password=password)
            if member is not None:
                login(request, member)
                return HttpResponseRedirect('/')
            else:
                return render_to_response('login.html', {'form':form}, context_instance=RequestContext(request))
           else:
                return render_to_response('login.html', {'form':form}, context_instance=RequestContext(request))
    else:
        form = LoginForm()
        context = {'form':form}
        return render_to_response('login.html', context, context_instance=RequestContext(request))
    

その方法がわかりません!ビュー1にビュー2をインポートし、両方のテンプレートについて適切な応答を返す必要があると思います。テンプレートもマージする必要がありますか? 2 つの異なる URL によって呼び出されるため、どのように呼び出されるのかわかりません。うーん、私は少し迷っています。誰かが私の心を啓発してくれたらうれしいです...

4

2 に答える 2

0

ログインビューを見ると、ビューの埋め込みなど、必要なことは何もしていないようですLoginRequest。代わりに、フォームをコンテキストとしてメイン ページ テンプレートに渡し、必要な場所に表示し、そのアクションをformによって処理される URL に変更するだけですLoginRequest。このように、LoginRequestview は login.html からログを記録する場合と同じように動作します。

于 2013-02-09T16:19:45.300 に答える
-1

テンプレートは実際に「ポインティング」を行います。たとえば、ユーザーは、基本的には index.html テンプレートである MainHomePage に到達します。そのテンプレート内で、ログイン フォームを定義します。Login フォームのアクションは、LoginRequest ビューを指すことができます。

ユーザーを管理するために別のアプリを用意する必要はありません。これは、 Django の管理サイトを使用/拡張することで実行できます。

また、あなたがやろうとしていることをカバーし、コア機能の多くを順を追って説明しているため、チュートリアルを読むことを検討する必要があります。

お役に立てれば。

于 2013-02-09T14:52:49.030 に答える