Problème table d'association Django-Python

Nouveau WRInaute
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 :

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.
 
Nouveau WRInaute
Désolé de ne pas avoir répondu plus tôt, je travaillais sur un autre point, j'ai essayé de transformer l'id salle en CharField dans le models puis de le synchro dans PhpMyAdmin mais je n'arrive toujours pas à afficher mon num_salle. Je vais essayer d'uniformiser mon models.py et je vous tient au courant si ça marche ou pas.
 
Discussions similaires
Haut