Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Django] besoin d'être éclairé - view/template

    31 janvier 2015 à 6:07:12

    Hello,

    j'ai déjà lu le tutorial le tutorial en entier... Et tenté de monter un site... Mais je coince sur un fonctionnement..


    Exemple :

    Dans mon projet je possède 4 applications :

    Article, utilisateurs, et vidéo.

    Là où je "bug", c'est comment afficher les objets de chaque applications sur une seule et même page.. ? J'arrive à afficher les infos pour 1 application... mais j'ai du mal à comprendre la "mécanique" pour plusieurs applications.. :-/

    Disons qu'au centre il y a une liste d'articles, et à droite une liste 5 vidéos, et une liste 10utilisateurs

    Donc chaque app, qui possède une view, devra pointer sur index.html ? (template commun aux 3 apps ?)

    J'essaye de trouver des exemples.. Mais j'ai du mal à comprendre la relation des 3 app sur une seule et même page... :/

    Merci d'avance pour vos explications :)

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      31 janvier 2015 à 12:14:23

      Dans la view qui renvoie à la page, tu y mets les 4 applications et tu retourne le tout via le render.

      def view (req...):

           v = utilisation de l'ap1

           x = utilisation de l'ap2

          ..

      return render(request,"la-pagehtml",locals())

      Sinon met des morceaux de ton code, t'obtiendras plus d'aides

      -
      Edité par Anonyme 31 janvier 2015 à 12:15:09

      • Partager sur Facebook
      • Partager sur Twitter
        31 janvier 2015 à 16:07:09

        Je souhaitais comprendre ce point, avant de me lancer. (J'avais un projet, mais je l'ai supprimé il y a longtemps..)

        Voilà le problème...

        Dans l'app "article", je dois importer les applications "users"/"video" ? Mais du coup cette application sera forcément dépendante des autres... ? C'est ça qui me semblait bizarre, devoir importer et mélanger les applications, les unes dans les autres..

        J'ai cherché quelques exemples...

        https://github.com/nathanborror/django-basic-apps

        Toutes ses applications sont bien distinctes...

        edit :

        basic/people/urls, ligne 17

        url (r'^$',
        view='person_list',
        name='person_list'
        ),

        basic/blog/urls, ligne 41

        url(r'^$',
        view='post_list',
        name='blog_index'
        ),

        En fait il faut rediriger les urls de chaque app, vers une page commune ? (comme lui ?)

        Je pensais que le serveur s'arrêtait de chercher, une fois qu'il trouvait la bonne url... ? qu'il retiendrait qu'une url...

        Dans basic/blog/views il passe les template_name en paramètre... Pourquoi ?

        -
        Edité par Myfzz 31 janvier 2015 à 16:47:13

        • Partager sur Facebook
        • Partager sur Twitter
          31 janvier 2015 à 17:47:48

          Tu peut tester ca:

          tu fais un startapp PageAccueil avec dans PageAccueil/views.py:

          from Article.views import *
          from utilisateurs.views import *
          from video.views import.views *
          
          def page_accueil(request):
              une_vue_d_article(request)
              une_vue_d_utilisateurs(request)
              une_vue_de_video(request)
          
              return render(request, "pagaccueil.html", locals())



          -
          Edité par CactusHaven 1 février 2015 à 11:54:34

          • Partager sur Facebook
          • Partager sur Twitter
          CactusHaven
            31 janvier 2015 à 18:47:38

            Je sais pas si c'est très conventionnel comme méthode ?

            Ça ressemble plus à du bidouillage non ? :s

            • Partager sur Facebook
            • Partager sur Twitter
              1 février 2015 à 12:00:57

              Dans tout les cas tu devra avoir un template commun sinon tu peut faire ça:

              tu fais un startapp PageAccueil avec dans PageAccueil/views.py:

              from Article.models import *
              from utilisateurs.models import *
              from video.models import *
              
              def page_acceuil(request):
                 # Ici tu récupère les données de tes models
                 # Pour les afficher dans un template commun



              • Partager sur Facebook
              • Partager sur Twitter
              CactusHaven
                1 février 2015 à 17:15:10

                Bah... Là était ma question du template commun.. si je renvoi les views de mes différentes app vers ce même template ? (Comme l'exemple sur github).

                Parce que ta solution... S'il faut créer à chaque fois une "app", lorsqu'il s'agit de mettre des données d'applications communes... c'est clairement du bidouillage, et je doute que ça soit la solution la plus adaptée.. J'aimerais comprendre "la vraie" technique.

                Enfin bon, je vais aller voir sur un autre forum, tant pis merci :)

                ps : J'avais compris ton exemple la 1ere fois.

                -
                Edité par Myfzz 1 février 2015 à 18:50:04

                • Partager sur Facebook
                • Partager sur Twitter

                [Django] besoin d'être éclairé - view/template

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown