IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

Un design pour chaque application


Sujet :

Django Python

  1. #1
    Invité
    Invité(e)
    Par défaut Un design pour chaque application
    Bonjour à tous
    Dans mon projet je possède trois applications avec trois design différents et je souhaiterais savoir comment on peut faire pour appeler le fichier.css correspondant.
    Est ce au niveau de base.html ou dans mon fichier urls.py que je dois intervenir ?
    Merci d'avance

  2. #2
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Django n'a pas voir principale vocation de s'occuper de la présentation. Ceci reste cantonner pour la grosse majorité dans les fichiers de template.

    Il est donc préférable de gérer cela a ce niveau, d'après moi.

    Cela laisse la porte ouverte à un jour publier tes informations sous une autre forme, rss, xml, json ou autre.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  3. #3
    Invité
    Invité(e)
    Par défaut
    C'est bien ce que je pensais vu que mon fichier css est déclaré dans les fichiers de template je me doutais bien que mon problème pourrait être résolu à ce niveau.
    Maintenant avez-vous une idée pour résoudre mon problème?

  4. #4
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    tu peux facilement declarer un block css dans ton base.html et créer ensuite un template pour chaque application en redefinissant le block css avec les valeurs adequates:

    base.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <html>
    ...{% block css %}<style ... "base.css"  >{% endblock %}
    appli1.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {% extends "base.html" %}
    ...
    {% block css %}
    <style ... "aplli1.css">
    {% endblock %}
    etc...
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  5. #5
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Et pour compléter un tout petit peu ce que donne pacificator comme information.

    Quand tu redéclares un bloc dans un template, par défaut le contenu du bloc étendu est écrasé.

    Si tu veux combiner les deux, tu peux utiliser {{ block.super }}.

    Ex :

    base.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <html>
    {% block css %}
    <style ... "base.css"  >
    {% endblock %}
    appli1.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {% extends "base.html" %}
    ...
    {% block css %}
    {{ block.super }}
    <style ... "aplli1.css">
    {% endblock %}
    Le résultat sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <style ... "base.css"  >
    <style ... "aplli1.css">
    En gros c'est comme pour les objets python, héritage et rappel du parent.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  6. #6
    Invité
    Invité(e)
    Par défaut
    J'avais pensé à cette alternative mais cela veut dire qu'il faut que je me refasse une cinquantaine de fichier de template et si je devais changer le nom du fichier css il faudrait que je fasse la modification par dessus
    En tout cas merci pour vos réponses rapides mais je vais continué mes recherches pour trouver une autre solution.
    Si quelqu'un a une autre idée je suis preneur.

  7. #7
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Tu peux passer le nom de ton fichier css en variable à ton template, si tu as peur de devoir le changer.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  8. #8
    Membre habitué

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Points : 144
    Points
    144
    Par défaut
    Voici comment j'ai procédé:

    base.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <head>
     
    		{% block extra_params_head %}
    			<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/{{ CURR_STYLE }}/base.css">
    		{% endblock extra_params_head%}
    	</head>
    dans mes templates enfants (qui correspondent à des applications):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {% block extra_params_head %}
    	{{ block.super }}
    	<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/{{ CURR_STYLE }}/article.css">
    {% endblock extra_params_head%}
    Sachant que la variable CURR_STYLE est renseignée par un context processor

    settings:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TEMPLATE_CONTEXT_PROCESSORS = (
        ...
        "context_processors.style",
    )
    j'ai créé un fichier context_processors.py qui contient cette fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def style(request):
        return {'CURR_STYLE':'silver'}
    Qui renvoit le nom du répertoire qui contient les styles CSS. Je créé autnt de répertoire que de style CSS dont j'ai envie et je peux passer de l'un à l'autre en changeant uniquement la variable dans le contextprocessor.


    Voilà, je sais pas si ça peut t'aider.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Merci pour ta réponse Sinclair. Je n'avais pas pensé à exploiter le context_processors (que j'utilise en plus dans mon application )
    Je vous remercie tous pour vos réponses je vais pouvoir me débrouiller à partir de tout ça

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Thèmes pour le design de mon application Java
    Par kariel dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 10/06/2014, 08h03
  2. Réponses: 1
    Dernier message: 06/05/2013, 17h47
  3. Design de contrôles pour une application
    Par Icewall dans le forum Windows Forms
    Réponses: 0
    Dernier message: 06/02/2009, 04h59
  4. Réponses: 9
    Dernier message: 30/07/2007, 16h56
  5. [W2000] Réseau spécifique pour chaque application
    Par SkyDev dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 01/02/2007, 10h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo