2010-11-10 6 views
0

J'ai un catalogue de cours et j'essaie d'inclure des pré-requis. Un cours comporte 0 à n pré-requis et un cours peut être la pré-question pour des cours de 0 à n. La classe de cours est la suivanteComment rattacher un modèle Django d'une table liée à un autre modèle d'enregistrement?

class Course(models.Model): 
    class Meta: 
    ordering = ['course_code', 'title']  
    course_id = models.AutoField(primary_key=True) 
    course_code = models.SlugField(max_length=20, null=False, blank=False) 
    .... 
    .... 

class Pre_requisit(models.Model) 
    course = models.ForeignKey(Course, course_id') 
    pre_req = ??????? 

J'ai essayé le champ pre_req comme ForeginKey et MamyToManyField mais ne peux pas trouver une solution. Django n'autorise pas 2 ForeignKeys de la classe Pre_requisit à la classe Course. Avec le champ ManyToMany evn à travers une autre table, j'ai toujours des erreurs.

Quelqu'un peut-il me dire comment réaliser cette relation? Je souhaite m'assurer que le cours de pré-requis existe et que je peux le lier pour qu'il puisse être affiché.

Merci beaucoup.

+0

Ont vous lisez ce que les erreurs disent? Parce qu'ils devraient vous dire que vous devez spécifier un nom connexe :) En outre, s'il vous plaît utilisez le bouton '101010' pour votre code afin qu'il soit en surbrillance. – Wolph

Répondre

0
class Course(models.Model): 
    .... 
    pre_req = models.ManyToManyField("self") 

lire la suite à http://docs.djangoproject.com/en/dev/ref/models/fields/#manytomanyfield

Si vous souhaitez stocker les informations supplémentaires que vous pouvez spécifier un « à » la table aussi (info à http://docs.djangoproject.com/en/dev/topics/db/models/#intermediary-manytomany), comme condition préalable ou recommandé dur, etc.

+0

Bonjour. Cela semble permettre seulement une pré-requis. Existe-t-il un moyen d'avoir beaucoup de pré-requis? – Ken