Thanks! That was a little unintuitive because, of course, I was only trying to do a "SELECT" on u and an INSERT on R. Save seems like it would do something to u
On Feb 2, 10:39 pm, Malcolm Tredinnick <malc...@pointy-stick.com> wrote: > On Mon, 2009-02-02 at 22:22 -0800, Theme Park Photo, LLC wrote: > > I can't get anything with Foreign keys to work. I trimmed everything > > down to the simplest example: > > > from django.db import models > > from django.contrib.auth.models import User > > > class Ranking(models.Model): > > user = models.ForeignKey(User) > > score = models.IntegerField() > > def __unicode__(self): > > return u'%s %d' % (self.user, self.score) > > > I can't add any "Ranking" records. I try like this (from the django > > shell) and always get an error like this: > > IntegrityError: (1048, "Column 'user_id' cannot be null") > > > Can someone give me a hint as to the right way to do this? > > > (Django shell session below) > > > >>> from django.db import models > > >>> from django.contrib.auth.models import User > > >>> from djbaytzim.bayscore.models import Ranking > > >>> u = User (username="swirsky") > > >>> print type(u) > > <class 'django.contrib.auth.models.User'> > > You have to save the User object before you can use it anywhere. At this > point in time, it doesn't have a primary key value, which is what the > Ranking object needs to refer to it. Actually, the pk value is None, > which 'r' then uses, which causes problems later. > > Another way of thinking of this: right now, 'u' does not exist in the > database. So you cannot save 'r' to the database, since it needs to > refer to another row in the database (the one for 'u', which doesn't > exist) for the User object. > > Call u.save() here (or use User.objects.create(username="swirsky")) and > everything will work. > > Regards, > Malcolm --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---