Django的 - 2app 2次2个模板在一个页面
我想进入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所调用。以及我有点失落 我会很高兴,如果任何人都可以启发我的想法...
你的templates实际上会做“指点”。例如,用户将登陆MainHomePage,这基本上是index.html模板。在该模板中,您可以定义登录表单。登录表单的动作可以指向LoginRequest视图。
我想指出,你不需要有一个单独的应用程序来管理用户。这可以通过using/extending Django's admin site完成。
此外,你应该考虑通过他们的tutorial,因为它涵盖了你想要做的事情,并且遍历了许多核心功能。
希望这会有所帮助。
非常感谢您的回答! 我会看看你的链接,我已经采取了Django教程前一段时间,但也许我现在想念一些部分... 有关信息,我跟着教程在hackedexistence.com – Dude 2013-02-09 16:44:05
看着你的登录视图,它似乎没有做任何你需要的东西,如嵌入LoginRequest
视图。相反,只需将表单作为上下文传递到主页面模板,将其显示在所需的位置,然后将该form
的操作更改为由LoginRequest
处理的URL。这样,LoginRequest
视图的行为将与从login.html登录时的行为相似
您的LoginRequest代码是否正常?似乎你在'return HttpResponseRedirect('/ profile /')'行后有额外的缩进。 – nims 2013-02-09 16:19:36
对不起坏复制粘贴,它在我的views.py文件中鳍。 – Dude 2013-02-09 16:43:16