我正试图进入django dev,但我对此很新手...... 这是我的问题:
我有:
模板1管理view1:index.html
App2指定成员 - 用于管理用户
基本上,1组是我的主页,2组是用户登录表。 我想将我的登录表单嵌入网站主页的右侧菜单中,就像我们在许多网站上看到的那样。
查看1 / templates 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_menudef 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个差异网址如何调用它们。好吧,我有点迷茫 如果有人能启发我的想法,我会很高兴...
答案 0 :(得分:0)
查看您的登录视图,它似乎没有做任何您需要嵌入LoginRequest
视图的内容。相反,您只需将表单作为上下文传递到主页面模板,将其显示在您想要的位置,并将form
的操作更改为LoginRequest
处理的URL。这样,LoginRequest
视图的行为就像从login.html
答案 1 :(得分:-1)
你的templates实际上会“指点”。例如,用户将登陆MainHomePage,它基本上是index.html模板。在该模板中,您将定义登录表单。 Login窗体的操作可以指向LoginRequest视图。
我想指出,您不需要单独的应用来管理用户。这可以通过using/extending Django's admin site完成。
此外,您应该考虑浏览tutorial,因为它涵盖了您尝试执行的操作并介绍了大部分核心功能。
希望这有帮助。