Vous n'êtes pas identifié(e).
Bonjour la foule,
Je connais un peu django et python, et je viens de découvrir Extjs et comme je suis flemmard
et que j'aime pas coder 36 fois la même chose j'ai imaginé le bidule suivant que je soumets a votre approbation technique :
Le principe est le suivant :
j'ai un template basic avec une variable dans le bloc head
dans cette variable je fourre tout un script Extjs que j'ai généré depuis mon views.py
En gros je génère mon script à la volée et cela fonctionne plutôt bien on doit pouvoir étendre le truc
au grille au formulaire au tab etc ...
cela ouvre de nombreuses perspectives intéressantes
par contre je n'ai aucune idée de l'impact de cette technique sur la sécurité ou si cela existe déjà, si je viens de réinventer l'eau chaude, si je dois changer de métier ...
et c'est la que je me permets de vous soumettre la question
A bientôt
Chris
Exemple de code
une template (rien de phénomenal) :
{% extends "base.html" %}
{% block title %} PAGE 1{% endblock %}
{% block head %}
<script type='text/javascript'>
{{ SCRIPT_EXTJS|safe }} <= ICI LE SCRIPT
</script>
{% endblock %}
{% block content %}
<p>
Page 1 de TEST
</p>
{% endblock %}
un views.py : (les données sont en dur dans le texte mais je compte utiliser Ajax
le code extjs viens de http://docs.sencha.com/extjs/4.2.0/#!/guide/grid
def page42(request):
SCRIPT_EXTJS = """
Ext.onReady(function(){
Ext.define('User', {
extend: 'Ext.data.Model',
fields:%s <=============== variable ici
});
var userStore = Ext.create('Ext.data.Store', {
model: 'User',
data: [
{ name: 'Lisa', email: 'lisa@simpsons.com', phone: '555-111-1224' },
{ name: 'Bart', email: 'bart@simpsons.com', phone: '555-222-1234' },
{ name: 'Homer', email: 'home@simpsons.com', phone: '555-222-1244' },
{ name: 'Marge', email: 'marge@simpsons.com', phone: '555-222-1254' }
]
});
Ext.create('Ext.grid.Panel', {
renderTo: Ext.getBody(),
store: userStore,
width: 400,
height: 200,
title: '%s', <============= variable ici
columns: [
{
text: 'Name',
width: 100,
sortable: false,
hideable: false,
dataIndex: '%s' <============= variable ici aussi
},
{
text: 'Email Address',
width: 150,
dataIndex: '%s', <============= variable la
hidden: true
},
{
text: 'Phone Number',
flex: 1,
dataIndex: '%s' <============= variable ici aussi
}
]
});
});
"""
f = ['name', 'email', 'phone'] ## la liste des champs
S = SCRIPT_EXTJS % ( simplejson.dumps(f), 'TITRE GRILLE', f[0], f[1], f[2] ) ## on transmets le tout
template = 'hello_extjs/page42.html'
return render( request, template, { 'SCRIPT_EXTJS':S } )
Hors ligne