2011-07-04 3 views
2

J'ai un modèle très simple pour les événements de suivi:Django une forme/deux modèles

class Event(models.Model): 

    description = models.TextField() 
    location = models.ForeignKey(Location)  
    start = models.TimeField() 
    duration = models.IntegerField() 
    event_date = models.DateField() 
    creator = models.ForeignKey(User) 

et j'opté pour extraire l'emplacement dans une table séparée afin d'être en mesure d'effectuer des requêtes:

class Location(models.Model): 

    city = models.CharField(max_length=20) 
    address = models.CharField(max_length=30). 

Quelle serait la meilleure façon de créer un formulaire pour insérer/mettre à jour des événements, en tenant compte du fait que l'emplacement devrait être fait séparément et que lié par ID dans l'instance d'événement? Je voulais peut-être un champ autocomplete pour l'adresse de l'emplacement et la ville, mais pour le garder sur le même formulaire pour plus de simplicité?

Répondre

-1

Définissez votre propre widget pour le ModelChoiceField dans le ModelForm qui est généré pour le ForeignKey.

+0

Peut-être que je n'ai pas bien expliqué. Je peux insérer un nouvel emplacement dans un formulaire, puis insérer le nouvel événement dans le deuxième formulaire, en sélectionnant manuellement l'emplacement précédemment défini à partir d'un menu déroulant. Je me demandais comment faire cela en une seule étape, peut-être avec deux formes connectées et une redirection, en conservant le PK de l'emplacement sélectionné ou créé? – freethrow

+0

Une fois que vous avez sauvegardé 'Location', vous pouvez ajouter son PK au' Event' validé et enregistrer ce modèle. –