Bonjour à tous,

J'essaie de développer une appli de gestion pour une petite association culturelle.
Je cherche en vain une solution à ce problème :

J'ai un modèle "Contact" qui peut être "Personne", "Membre", "Adherent", et à terme "Client" et "Fournisseur"
J'ai donc pensé à ça :

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
21
22
23
24
25
26
27
 
# -*- coding: utf-8 -*-
from django.db import models
 
class Contact(models.Model):
    nom = models.CharField(max_length=50, blank=False, null=False)
    ad1 = models.CharField(max_length=100, blank=True, verbose_name=u"Adresse")
    ad2 = models.CharField(max_length=100, blank=True, verbose_name=u"Complément d'Adresse")
    cp = models.CharField(max_length=10, blank=True, verbose_name=u"Code Postal")
    ville = models.CharField(max_length=50, blank=True)
    pays = models.CharField(max_length=50, blank=True)
    email = models.EmailField(blank=True)
    telephone = models.CharField(max_length=25, blank=True)
 
    def __unicode__(self):
        return self.nom
 
class Personne(models.Model):
    contact = models.OneToOneField(Contact)
    prenom = models.CharField(max_length=50, blank=False, null=False, verbose_name=u"Prénom")
    datenaiss = models.DateField(verbose_name=u"Date de Naissance")
 
    def __unicode__(self):
        return "%s %s" % (self.prenom, self.contact.nom)
 
class Membre(models.Model):
    contact = models.OneToOneField(Contact)
Mais dans l'admin "Personne", je ne peux pas éditer les données "contact" avec un Inline : 'annuaire.Contact' has no ForeignKey to 'annuaire.Personne'

Je ne sais pas si je dois plutôt passer par l'héritage (qui ferait de la redondance et d'autres problèmes) ou par la création d'une view dans l'admin (je ne sais même pas si c'est possible).

Si quelqu'un est déjà passé par ce type de problème, je serais très intéressé par la solution qu'il a trouvé.

Merci !