I have created a model A:

def g():
    return A.objects.get(pk=1)

class A(models.Model):
    a = models.IntegerField()

./manage.py makemigrations
./manage.py migrate

then I've added some data:

a = A(a=1)
a.save()

then I have created another model with a ForeignKey field with a default 
set to g function (that really returns one instance od A) and I was trying 
to migrate it:

class B(models.Model):
    b = models.ForeignKey(A, default=g)

./manage.py makemigrations
...
./manage.py migrate
....
  File 
".../e/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py", 
line 627, in get_db_prep_save
    prepared=False)
  File 
".../e/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py", 
line 907, in get_db_prep_value
    value = self.get_prep_value(value)
  File 
".../p/e/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py",
 
line 915, in get_prep_value
    return int(value)
TypeError: int() argument must be a string or a number, not 'A'

Is it expected behaviour or a bug?

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/de0d382b-d21f-4c10-9fb6-d7f0e2791022%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to