On Sat, Nov 14, 2009 at 10:25 AM, Denis Bahati <djma...@gmail.com> wrote:

> Hi,
> Here is my model am using to update items status.
>
> class User(models.Model)
>             users = models.ForeignKey(User)
>             resources = models.ForeignKey(Resource)
>            date_tracked = models.DateTimeField('Date Tracked')
>            description = models.TextField()
>            status_count_per_week = models.IntegerField()
> status = models.ForeignKey(Status)
>
> class Meta:
> verbose_name_plural = 'Track Resources'
>
> What i want to achieve is that:
>   When i update the status the item first i should get the date last
> tracked and compare with tje current date, if the date tracked and
> the current date are not in the same week it should insert into a new row of
> status_count_per_week. If the date tracked and the current date are in the
> same week it should increment the value of status_count_per_week .
>
>
I find your model and description confusing -- I am not sure the model you
have defined is correct for what you want to achieve -- so I am not going to
attempt to craft a solution exactly. Instead I'll point you to the two
building blocks I think you need to achieve what you are looking for.
First, get_or_create:

http://docs.djangoproject.com/en/dev/ref/models/querysets/#get-or-create-kwargs

which you can use to either get the model containing a specific set of
fields or create it if it does not exist.

Second, update() with an F() expression can be used to atomically increment
a counter:

http://docs.djangoproject.com/en/dev/ref/models/instances/#updating-attributes-based-on-existing-fields

Karen

--

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


Reply via email to