Thank you for your time and response Malcom, I appreciate it very
much.

On Apr 29, 3:42 pm, Malcolm Tredinnick <malc...@pointy-stick.com>
wrote:
> On Wed, 2009-04-29 at 15:37 -0700, Timboy wrote:
> > I am trying to make a pk for an object that starts with the year
> > followed by seven additional digits. YYXXXXXXX I want the digits to
> > automatically increase like normal.
>
> > I'm guessing I need to pass force_insert=True to my save if not
> > self.pk. I'd appreciate some advice.
>
> If you're not using Django's AutoField for primary key values (which you
> aren't), then you need to always supply the primary key value before
> calling save(). Django cannot guess what value you want to put in there.
>
> Now, you could "provide" the value by specifying a (Python) function for
> the "default" attribute on, say, an integer field and use that to create
> the value, although there's then no way to enforce the sequential
> increase if multiple new models are created more or less imsultaneously
> in separate threads.
>
> I would encourage stepping back a bit to consider your problem in a
> different way, which might be much simpler. Use a normal
> auto-incrementing sequence for the primary key in the table (i.e. use
> Django's default) and have another field that specifies the year of
> creation. Then have a property or method on the model which combines the
> year-of-creation field with the pk value to get the combined value
> you're after for display or reference purposes. Modifications on this
> are possible if you're also doing lookups, etc.
>
> Or you could, at the database level, set the sequence value to a
> particular value before doing the first insert for a year. How this is
> done is database dependent and is done with direct database
> modification, not via Django directly (you could do it with
> cursor.execute(), but it's something you only want to do once a year, in
> any case).
>
> Regards,
> Malcolm
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@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
-~----------~----~----~----~------~----~------~--~---

Reply via email to