On 5-7-2012 21:46, Fabiano Martins wrote:

> I'm novice on Django, and I have a problem that I can't resolve through 
> documentation.
> 
> I like to make a validation on Model.clear() of the master class method based 
> on 
> data of your detail classes, but it returns always a empty set.
> 
> This example illustrates my problem:

>      def clean(self):
>          super(Master, self).clean()
>          total = 0
>          for product in self.product_set.all():
>              total += product.value

At clean() time nothing has been saved, so the relationship isn't there
yet and you can't ask for it. There are a few ways to solve it in
decreasing order:
- Use a custom template and write some javascript that calculates the
master value on submit.
- Write a custom view and calculate the totals there.
- Wrap everything in a transaction, do the validation in the post_save
signal and roll back the transaction if the total is too low (not even
sure this /can/ be done).

Maybe others have more ideas.
-- 
Melvyn Sopacua


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