2013-02-09 40 views
0

我想進入Django的dev的,但我是一個相當有新手到這... 這裏是我的問題:Django的 - 2app 2次2個模板在一個頁面

我:

  • 應用1 - 處理我的網站發佈
  • 查看1
  • 模板1管理廠景:index.html的

  • 應用2南編輯成員 - 用於管理用戶

  • 查看2
  • 模板2管理視圖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)) 
    

我不明白該怎麼做! 我想也許我應該在view1中導入view2並返回 的適當響應那麼模板應該如何合併呢? 無法看到它們被2個不同的URL所調用。以及我有點失落 我會很高興,如果任何人都可以啓發我的想法...

+0

您的LoginRequest代碼是否正常?似乎你在'return HttpResponseRedirect('/ profile /')'行後有額外的縮進。 – nims 2013-02-09 16:19:36

+0

對不起壞複製粘貼,它在我的views.py文件中鰭。 – Dude 2013-02-09 16:43:16

回答

-1

你的templates實際上會做「指點」。例如,用戶將登陸MainHomePage,這基本上是index.html模板。在該模板中,您可以定義登錄表單。登錄表單的動作可以指向LoginRequest視圖。

我想指出,你不需要有一個單獨的應用程序來管理用戶。這可以通過using/extending Django's admin site完成。

此外,你應該考慮通過他們的tutorial,因爲它涵蓋了你想要做的事情,並且遍歷了許多核心功能。

希望這會有所幫助。

+0

非常感謝您的回答! 我會看看你的鏈接,我已經採取了Django教程前一段時間,但也許我現在想念一些部分... 有關信息,我跟着教程在hackedexistence.com – Dude 2013-02-09 16:44:05

0

看着你的登錄視圖,它似乎沒有做任何你需要的東西,如嵌入LoginRequest視圖。相反,只需將表單作爲上下文傳遞到主頁面模板,將其顯示在所需的位置,然後將該form的操作更改爲由LoginRequest處理的URL。這樣,LoginRequest視圖的行爲將與從login.html登錄時的行爲相似

+0

非常感謝您的答案。 爲了清楚地理解,我應該將2個上下文傳遞到主頁面 「主頁」和登錄表單的一個,當提交登錄請求時,它應該旨在登錄視圖和模板,它將處理登錄連接並重定向到我想要的頁面。 – Dude 2013-02-09 16:37:56

+0

@Dude Correct .. – nims 2013-02-11 19:29:44