Bonjour, Je développe un site web pour le lycée ou j'effectue mon stage en python avec le framework django. Mon site va permettre aux utilisateurs de visualiser l'inventaire informatique du lycée, la configuration des machines et de demander une maintenance sur un poste précis.
J'ai repris ma BD sur PHPMyAdmin et je l'ai exporter en models pour django. J'ai une table salle, une table matériel et une table inventaire avec dedans num_salle et id_mat. Voici la déclaration de mes modèles :
J'ai un problème avec la table Emplacement, lorsque j'affiche les données des tables sur mes pages, les tables simples comme Salle et Materiel ne posent aucun soucis mais pour la table emplacement l'id_mat apparaît sous la forme Materiel object et le num_salle ne veut même pas s'afficher :
invalid literal for int() with base 10: 'S001'
alors que mon num_salle est déclaré en CHarfield (pour le S de S001) et pas de problème pour l'afficher dans la table salle. Pareil dans l'interface admin de django.
Voici un screen pour vous montrer :
http://zupimages.net/viewer.php?id=14/23/jhab.png
http://zupimages.net/viewer.php?id=14/23/und9.png
Voici mon template pour l'afficher :
ps: c'est une autre question mais, comme j'y suis, je n'arrive pas à mettre d'overflow scroll sur mes tableaux pour qu'on puisse les faire défiler sans qu'ils agrandissent trop la page.
J'ai repris ma BD sur PHPMyAdmin et je l'ai exporter en models pour django. J'ai une table salle, une table matériel et une table inventaire avec dedans num_salle et id_mat. Voici la déclaration de mes modèles :
Code:
class Materiel(models.Model):
id_mat = models.IntegerField(primary_key=True)
modele_mat = models.CharField(max_length=30)
date_recep = models.TextField()
marque_mat = models.CharField(max_length=30)
addmac = models.TextField()
proc_mat = models.TextField()
mem_mat = models.TextField()
dd_mat = models.TextField()
id_type_mat = models.IntegerField()
class Meta:
managed = False
db_table = 'Materiel'
class Salle(models.Model):
id_salle = models.IntegerField(primary_key=True)
num_salle = models.CharField(max_length=30)
description = models.TextField(max_length=15)
nombre_poste = models.IntegerField()
class Meta:
managed = False
db_table = 'Salle'
class Emplacement(models.Model):
id_empl = models.IntegerField(primary_key=True)
id_mat = models.ForeignKey(Materiel, db_column='id_mat')
date = models.DateField()
num_salle = models.ForeignKey(Salle, db_column='num_salle')
class Meta:
managed = False
db_table = 'emplacement'
J'ai un problème avec la table Emplacement, lorsque j'affiche les données des tables sur mes pages, les tables simples comme Salle et Materiel ne posent aucun soucis mais pour la table emplacement l'id_mat apparaît sous la forme Materiel object et le num_salle ne veut même pas s'afficher :
invalid literal for int() with base 10: 'S001'
alors que mon num_salle est déclaré en CHarfield (pour le S de S001) et pas de problème pour l'afficher dans la table salle. Pareil dans l'interface admin de django.
Voici un screen pour vous montrer :
http://zupimages.net/viewer.php?id=14/23/jhab.png
http://zupimages.net/viewer.php?id=14/23/und9.png
Voici mon template pour l'afficher :
Code:
<tr><th>Identifiant Matériel</th><th>Salle</th><th>Date de Placement</th></tr>
{% for y in dispo %}
<tr><td>{{ y.id_mat }}</td><td>{{ y.num_salle }}</td><td>{{ y.date}}</td></tr>
{% endfor %}
</table> </zed3>
ps: c'est une autre question mais, comme j'y suis, je n'arrive pas à mettre d'overflow scroll sur mes tableaux pour qu'on puisse les faire défiler sans qu'ils agrandissent trop la page.