2013-02-09 38 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