How about using an autofield?

http://docs.djangoproject.com/en/dev/ref/models/fields/#autofield

On Aug 16, 12:25 pm, Alec Shaner <asha...@chumpland.org> wrote:
> Regarding your issue with get_next, could be because you're invoking the
> method when you define default=get_next(). Try it with just the bare method
> name get_next.
>
> You could also use the aggregate function instead of creating a new model:
>
> http://docs.djangoproject.com/en/1.2/topics/db/aggregation/#topics-db...
>
> Just define get_next to call the Max aggregate on your Newspaper model's
> number field.
>
> On Mon, Aug 16, 2010 at 12:39 PM, bagheera <neost...@go2.pl> wrote:
> > Hi, i have "number" field in "newspaper" model.  I want assign to it
> > dynamically a default value, witch would be a incremented by 1 highest value
> > so far.
> > So i managed to make a little workaround, since i can't query for last
> > value of "number" field of model from model itself.
>
> > I have created new model, witch has only 1 field any 1 record, witch stores
> > current highest value.
> > I wrote two functions:
>
> > #-*- coding: utf-8 -*-
> > from nml.options.models import Wydanie_opt
>
> > def set_next(value):
> >    try:
> >        option = Wydanie_opt.objects.all()[0]
> >        if value > option.nr_wydania_next:
> >            option.nr_wydania_next = value
> >            option.save()
> >    except:
> >        option = Wydanie_opt(nr_wydania_next = value)
> >        option.save()
>
> > def get_next():
> >    try:
> >        option = Wydanie_opt.objects.all()[0]
> >        value = option.nr_wydania_next
> >    except:
> >        return 0
> >    else:
> >        return value + 1
>
> > Here's code of "newspaper" model:
>
> > from nml.options.utils import get_next
>
> > class Wydanie(models.Model):
> >    nr_wydania = models.PositiveIntegerField(verbose_name = "Numer wydania",
> > unique = True, default = get_next(),
> >        help_text = "Unikalny numer wydania.")
>
> > The problem is, set_next is working as intended, but get_next() does NOT,
> >  default value stays the same until i restart dev server. Why? Query isn't
> > evaluated? get_next() function isn't called at all?
> > Mb there is a better way to implement auto-incrementation.
> > Keep in mind that, "nr_wydania" field must be visible and editable, since
> > first entered value is unknown, some values may be skipped, and there is no
> > order of adding it.
> > --
> > Linux user
>
> > --
> > 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<django-users%2bunsubscr...@googlegroups.com>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/django-users?hl=en.

-- 
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.

Reply via email to