2009-10-12 6 views
1

Je suis tout à fait perplexes pourquoi cela ne fonctionne pas:Enregistrement des objets ForeignKey dans Django

flight = Flight.objects.get(pk=flight_id) 
print "old", flight.route.pk ## `route` is a ForeignKey field to model Route 
print "new", new_route.pk 
flight.route=new_route # new_route is a newly created Route object 
flight.save() 
print "db", Flight.objects.get(pk=flight_id).route.pk 

c'est la sortie:

old 4800 
new 7617 
db 4800 

Y at-il une manière particulière, je dois appeler enregistrer() sur le vol pour le faire économiser réellement?

modifier: mes modèles ressemblent à ceci:

class Flight(models.Model): 
    route = models.ForeignKey(Route, blank=True, null=True, related_name="flight") 

class Route(models.model): 
    # a bunch of CharFields and IntegerFields 
+0

Pouvez-vous S'il vous plaît fournir les modèles de django connexes? – madewulf

Répondre

0

OK Je viens tout compris, j'ai récemment déplacé mon enregistrement personnalisé fonction à partir du bas de la définition de la classe vers le haut, et j'ai oublié la dernière ligne qui appelle super(Flight, self).save(*args, **kwargs)

Questions connexes