2010-10-19 4 views
2

Je veux la capacité de permettre aux utilisateurs d'indiquer ce que les pays qu'ils ont visités .. mon models.py ressemble à ceci:Django - besoin de conseils sur la façon de mettre en œuvre une base de données de ManyToMany

class User(models.Model): 
     name = models.CharField(max_length=50) 
     countries = models.ManyToManyField(Countries) 

class Countries(models.Model): 
     #This is where I don't know what to do. 
     #The end goal is for the user to be able to check off what countries he/she has visited 

Répondre

2

vous créez la relation dans l'autre sens

class User(models.Model): 
    name = models.CharField(max_length=50) 

class Countries(models.Model): 
    user = models.ForeignKey(User) 

Si vous utilisez construit de django dans des choses de l'utilisateur alors vous ne devez cela.

from django.contrib.auth.models import User 

class Countries(models.Model): 
    user = models.ForeignKey(User) 
+0

OK Merci. Je ne sais rien sur les trucs de Django, mais je vais le regarder. (premier jour sur Django ..) – zallarak

+0

C'est juste correct si vous voulez que les utilisateurs écrivent les pays et ajoutent un 'USA' pour chaque utilisateur qui a visité les USA. – tback

1

champs de relations génèrent déjà un attribut sur l'autre modèle pour la relation inverse sauf si explicitement désactivé.

0

Vous êtes bien comme c'est w/r/t le ManyToManyField.

Vous allez maintenant créer un formulaire pour ce modèle afin de permettre à vos utilisateurs de procéder à la vérification.

+0

Merci pour l'info; juste pour clarifier, donc un simple message HTML va prendre soin de cela? – zallarak

+0

Et il n'y a rien que je doive écrire sous la catégorie Pays? – zallarak

+0

bien - pour que la classe soit compilée, vous aurez besoin d'au moins «passer» dans les pays, et probablement plus, quelle que soit la logique spécifique au pays dont vous avez besoin. – fish2000

Questions connexes