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
-~----------~----~----~----~------~----~------~--~---

Reply via email to