#32524: unexpected behavior when using gettattr for related object
-------------------------------------+-------------------------------------
Reporter: elonzh | Owner: nobody
Type: Bug | Status: closed
Component: Database layer | Version: 3.1
(models, ORM) |
Severity: Normal | Resolution: invalid
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 1
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):
* status: new => closed
* resolution: => invalid
Comment:
> The problem is `UserProfile(user=u)` will update the User.profile when
we init UserProfile.
As far as I'm aware this is an expected behavior to keep relationships in
sync. I don't think there is anything that we could improve in docs, there
is also
[https://docs.djangoproject.com/en/3.1/topics/db/examples/one_to_one/#one-
to-one-relationships an example] which shows this behavior:
{{{
>>> p1 = Place(name='Demon Dogs', address='944 W. Fullerton')
>>> p1.save()
>>> p2 = Place(name='Ace Hardware', address='1013 N. Ashland')
>>> p2.save()
>>> r = Restaurant(place=p1, serves_hot_dogs=True, serves_pizza=False)
>>> r.save()
>>> r.place
<Place: Demon Dogs the place>
>>> p1.restaurant
<Restaurant: Demon Dogs the restaurant>
}}}
You can use `hasattr()` or catch `AttributeError`.
--
Ticket URL: <https://code.djangoproject.com/ticket/32524#comment:2>
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 view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/064.de88e45f75c15060973fa3af06ae35e2%40djangoproject.com.