#21401: But when saving an object pointed by another
----------------------------------------------+--------------------
Reporter: msbrogli@… | Owner: nobody
Type: Bug | Status: new
Component: Database layer (models, ORM) | Version: 1.5
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
----------------------------------------------+--------------------
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.
--
Ticket URL: <https://code.djangoproject.com/ticket/21401>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" 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].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/066.944cf3793199555a83abe73d839252a3%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.