Have a look at this thread: http://groups.google.com/group/django-users/browse_thread/thread/deda522d2545325e/bbaa8edbeda204e3?lnk=gst&q=production+number#bbaa8edbeda204e3
The author has a similar problem i.e. he says: "There is a high risk of concurrency so just finding the previous max and then do a +1 before saving is not what I want. " On Oct 21, 11:54 pm, orokusaki <flashdesign...@gmail.com> wrote: > Correction: I meant for the third ticket to have pk: 3. > > On Oct 21, 3:18 pm, Yo-Yo Ma <baxterstock...@gmail.com> wrote: > > > Example: > > > Company has many Tickets > > Tickets have a PK, as well as a "number". > > Each Ticket's "number" should be the highest prior "number" for a > > Ticket with the same Company > > > Ticket: pk: 1, number: 1, company: XYZ > > Ticket: pk: 2, number: 1, company: Acme > > Ticket: pk: 1, number: 2, company: XYZ > > > unique_together=(("number", "company"),) # number is not unique > > itself. > > > How should I handle this non-sense? > > > Confusing, convoluted, in-depth (sort of) explanation: > > > I have a model that sets the value of one of it's fields in the save() > > method. It does this by reading the value of another field, and using > > that value to calculate the value based on how many instances there > > are with the same value in the other field (Basically an auto field > > that increments with regards to a foreign key). The field that save() > > sets is a unique field. This means that if 2 people on other sides of > > the globe hit "submit" at the same time, the number of instances with > > "other field"s value will be the same (e.g. 500). Then save() will > > make self.number = 501, causing an IntegrityError for which ever one > > takes longer to finish. How can I get around this? Or, better yet: How > > should I do this instead? > > > Thanks in advance. -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.