#8892: ForeignKey relation not saved as expected
-------------------------------------+-------------------------------------
     Reporter:  julien               |                    Owner:
         Type:  Bug                  |  blacklwhite
    Component:  Database layer       |                   Status:  new
  (models, ORM)                      |                  Version:  1.0
     Severity:  Normal               |               Resolution:
     Keywords:                       |             Triage Stage:  Accepted
    Has patch:  1                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  1
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by akaariai):

 What we could possibly do is check that b.a.id == b.a_id. If not, then
 throw an error. This would break some code for sure, but on the other hand
 it would be a nice protection. Instead of saving corrupted data the ORM
 layer forces you to write code where both b.a.id and b.a_id agree on the
 value.

 There are a couple of other options, too, like when a.save() is called,
 then b.a_id is set (requires that a knows it is assigned to b), or on
 b.save() use the value of b.a.id instead of b.a_id (this will break code
 that relies on saving b.a_id).

 Raising an exception whenever b.a_id doesn't agree on b.a.id's value is
 worth considering. I believe exception is a lot better than the
 possibility for bugs that lead to silent data corruption.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/8892#comment:23>
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 django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.21647452a600d6286e73acb6b0e31780%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to