I've never had to do this but it sounds you want to work with
Form.clean() in stead of Form.clean_is_approved().  From the docs:

    "The Form subclass’s clean() method. This method can perform any
validation that requires access to multiple fields from the form at
once."

So in your clean method you would grab the submitted inlines and check
them against the is_approved field on the Clip.  I'm not a django
expert, but that's where I would start.  Good luck.

:Marco


On Jan 14, 6:45 pm, Gabriel Reis <gabriel...@gmail.com> wrote:
> Hi people,
>
> I am having some problem to validate a data in my application. I will try to
> simply the model in here to help you guys to understand the problem.
> I have 2 models:
>
> class Clip(models.Model):
>     is_approved = models.BooleanField(default=False)
>     language = models.ForeignKey(Language)
>
> class ClipDescription(models.Model):
>     clip = models.ForeignKey(Clip)
>     text = models.TextField()
>     language = models.ForeignKey(Language)
>
> I am editing via ModelAdmin. I defined a ClipModelAdmin class as above
> (simplified):
>
> class ClipAdmin(admin.ModelAdmin):
>     inlines = [
>         ClipDescriptionInline
>     ]
>
> So, as you can see, both Clip and ClipDescription are edited in the same
> page (using the 'inlines' feature).
>
> But the rule is: if the user trigger the 'Save' action, the attribute
> Clip.is_approved can be True only if there is a ClipDescription instance
> associated to the Clip instance, having the same language. For example, if I
> have a clip with id=1, language=english and is_approved=True, it can be
> saved only if there is a clip description with clip_id=1, language=english.
> If not, I want to show the error message 'Cannot approve this clip without
> having a description in English' in the form.
>
> I have already read the official documentation and tried to work with
> validators, tried to define a ModelForm and its clean_is_approved method,
> among other workarounds. And I still couldn't make this work. The problem is
> at the clean_is_approved context I couldn't figure out how to get access to
> the form data that is being entered at that moment, to retrieve the Clip
> descriptions.
>
> I don't if I was clear enough, I can give more details. Any ideas and
> suggestions will be very appreciated.
>
> Thank you very much for your attention.
>
> Kind regards,
>
> Gabriel
>
> Gabriel de Carvalho Nogueira Reis
> Software Developer
> +44 7907 823942
-- 
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