2013-02-09 3 views
0

Je suis en train d'entrer dans django dev mais je suis tout à fait débutant à cette ... Voici mon problème:Django - 2app 2 vues 2 modèles dans une page

Je:

  • App1 - pour traiter ma publication du site
  • Voir 1
  • modèle 1 gestion view1: index.html

  • App2 nam membre ed - pour la gestion des utilisateurs

  • Voir 2
  • Modèle 2 Gestion view2: login.html

essentiellement, le groupe 1 est ma page principale et le groupe 2 est une forme de connexion de l'utilisateur. Je voudrais intégrer mon formulaire de connexion dans un bon menu sur la page principale du site, comme nous pouvons le voir sur de nombreux sites.

  • Voir 1/templates 1 mon bloc étend le contenu de 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)) 
    
  • Voir 2 modèles/2 étend mon right_menu de base.html avec mon formulaire de connexion

    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)) 
    

Je ne vois pas comment faire ça! Je pense que je devrais peut-être importer le view2 dans view1 et retourner une réponse correcte pour les deux qu'en est-il des modèles devraient-ils être fusionnés aussi? ne peut pas voir comment ils sont appelés par 2 URL de différence. Eh bien, je suis un peu perdu Je serai heureux si quelqu'un pouvait éclairer mon esprit ...

+0

Votre code pour 'LoginRequest' est-il correct? Semble avoir une indentation supplémentaire après la ligne 'return HttpResponseRedirect ('/ profile /')'. – nims

+0

désolé mauvaise copie coller, c'est fin dans mon fichier views.py. – Dude

Répondre

-1

votre templates ferait effectivement le "pointage". Par exemple, un utilisateur accède à MainHomePage, qui est essentiellement le modèle index.html. À l'intérieur de ce modèle, vous auriez défini le formulaire de connexion. L'action du formulaire de connexion peut pointer vers la vue LoginRequest.

Je tiens à souligner que vous n'avez pas besoin d'une application distincte pour gérer les utilisateurs. Cela peut être fait par using/extending Django's admin site.

En outre, vous devriez envisager de passer par leur tutorial, car il couvre ce que vous essayez de faire et passe en revue une grande partie de la fonctionnalité de base.

Espérons que cela aide.

+0

Un grand merci aussi pour votre réponse! Je vais regarder dans vos liens, j'ai déjà pris le tutoriel django il ya un moment, mais peut-être que je manque des parties maintenant ... Pour information, j'ai suivi les tutoriels à hackedexistence.com – Dude

0

En regardant votre vue de connexion, il ne semble pas faire quelque chose que vous avez besoin de quelque chose comme l'affichage LoginRequest. Au lieu de cela, vous pouvez simplement passer le formulaire en tant que contexte au modèle de page principal, l'afficher où vous voulez et changer l'action de ce form à l'URL qui est géré par LoginRequest. De cette façon, l'affichage LoginRequest se comportera comme s'il se connectait à partir de login.html

+0

Merci beaucoup pour votre réponse. Pour comprendre clairement, je devrais passer 2 contexte à la page principale la "Homepage" et celui pour le formulaire de connexion et lors de la soumission d'une demande de connexion, il devrait viser la connexion et le modèle, qui gèrera la connexion et rediriger vers Je veux la page – Dude

+0

@Dude Correct .. – nims