﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
21401	Bug when saving an object pointed by another	msbrogli@…	nobody	"My models are:

{{{
class A(models.Model):
    b = models.ForeignKey('B', null=True)
    name = models.CharField(max_length=255)

class B(models.Model):
    name = models.CharField(max_length=255)
}}}

The following code reproduces the problem:

{{{
a = A(name=""Test A"")
a.b = B(name=""Test B"")

a.b.save()
a.save()

a = A.objects.get(id=a.id)
assert a.b is not None
}}}

The assert fails! As I look inside the code, the field `b_id` is set only when `a.b` is being set. So, the workaround is:

{{{
a = A(name=""Test A"")
a.b = B(name=""Test B"")

a.b.save()
a.b = a.b  # workaround
a.save()

a = A.objects.get(id=a.id)
assert a.b is not None
}}}

Now it works as expected.

Is it a bug or a feature? I can't find anything in the docs.

If it is a bug, I guess the object should have a list of which objects are pointing to it. So, when it is added, it should updated everyone id field."	Bug	closed	Database layer (models, ORM)	1.5	Normal	duplicate		msbrogli@…	Unreviewed	0	0	0	0	0	0
