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 :

ManyToMany et créations de champs


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2
    Par défaut ManyToMany et créations de champs
    Salut,

    J'ai un soucis :

    J'ai un modèle Personne et un modèle Téléphone. À ces téléphones (le modèle, la marque, etc), je dois attribuer un numéro. Pour l'instant, j'ai une relation ManyToMany vers une table intermédiaire (qui inclut une ForeignKey vers une personne, une ForeignKey vers un téléphone et le numéro)

    Une fois ceci fait, je souhaite personnaliser mon backoffice :

    J'aimerai que pour le champs "Téléphones", Django me propose une liste d'inputs (autant que de téléphones renseignés).

    Je ne sais pas du tout par où commencer, pouvez vous m'indiquer la marche à suivre ?

    Merci.

    PS : Django 1.5 et Python3

    PS², voici mon models.py :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    @python_2_unicode_compatible
    class Phone(models.Model):
        name = models.CharField(max_length=12)
     
        def __str__(self):
        	return self.name
     
    @python_2_unicode_compatible
    class PersonPhone(models.Model):
    	person = models.ForeignKey(Person)
    	phone = models.ForeignKey(Phone)
    	number = models.SmallIntegerField() #ne vous souciez pas du type
     
    	def __str__(self):
    		return u'%s - %s' % (person, phone)
     
    @python_2_unicode_compatible
    class Person(models.Model):
    	name = models.CharField(max_length=30, unique=True)
    	numbers = models.ManyToManyField(PersonPhone)

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 159
    Par défaut
    Hello,
    Quand tu parles de ton backoffice, tu perles de l'admin Django ?
    Si oui regarde du côté de InlineModelAdmin (voir https://docs.djangoproject.com/en/1....ladmin-objects )

    Un TabularModelAdmin me semble indiqué.

    PS: vu de plus près, ton modèle est étrange ; j'ai pas le temps de faire une schéma, mais tu as une manytomany entre Person et PersonPhone, et une onetomany de Person vers PersonPhone.

    Ta foreignkey vers PersonPhone dans Person dit qu'un PersonPhone ne peut appartenir qu'à une seule Person... alors pourquoi la ManyToMany ?

    Bref tu as une relation exprimée deux fois avec deux cardinalités différentes... il faut revoir le modèle AMHA.

    Il faut que tu saches que la manytomany VA créer une autre table intermédiaire entre PersonPhone et Person, avec une clé étrangère vers chacune de ces deux tables. A mon avis cette relation est de trop.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2
    Par défaut
    Citation Envoyé par valAa Voir le message
    Hello,
    Quand tu parles de ton backoffice, tu perles de l'admin Django ?
    Si oui regarde du côté de InlineModelAdmin (voir https://docs.djangoproject.com/en/1....ladmin-objects )

    Un TabularModelAdmin me semble indiqué.

    PS: vu de plus près, ton modèle est étrange ; j'ai pas le temps de faire une schéma, mais tu as une manytomany entre Person et PersonPhone, et une onetomany de Person vers PersonPhone.

    Ta foreignkey vers PersonPhone dans Person dit qu'un PersonPhone ne peut appartenir qu'à une seule Person... alors pourquoi la ManyToMany ?

    Bref tu as une relation exprimée deux fois avec deux cardinalités différentes... il faut revoir le modèle AMHA.

    Il faut que tu saches que la manytomany VA créer une autre table intermédiaire entre PersonPhone et Person, avec une clé étrangère vers chacune de ces deux tables. A mon avis cette relation est de trop.
    J'ai trouvé (c'était bien l'InlineAdmin), merci !

    Pour ce qui est des modèles, c'est ce dont j'ai besoin :
    -La liste des téléphones existants (marque, modèle...)
    -Une liste de personne
    -Une relation qui lie l'identité du téléphone au numéro de la personne

    Je ne l'ai pas fait correctement ?

    merci encore !

Discussions similaires

  1. Création de champs de fusion word automatique
    Par chichiboof dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 16/10/2006, 13h39
  2. Création de champ dynamique dans un formulaire
    Par alex75 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/04/2006, 16h00
  3. Création de champ dans une requete
    Par CCRNP dans le forum Access
    Réponses: 2
    Dernier message: 20/10/2005, 22h15
  4. Création de champs calculé en runtime.
    Par Andry dans le forum Bases de données
    Réponses: 9
    Dernier message: 13/08/2005, 00h04
  5. Création de champs
    Par stailer dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/02/2005, 17h14

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