Wednesday, December 29, 2010

Re: ModelForm validation

Easiest solution I can see is to create two form classes: StudentForm
and NonStudentForm. On student form you can then edit form.instance
or form.cleaned_data depending on what your needs are to add the
additional fields before the object is created/updated.

Another approach would be to try setting the fields to "blank = True"
in your model declaration. I believe this is the exact case for both
a blank=True and a null=True model options. Blank is for form
validation, Null is for database.

Not a full solution, but perhaps gets you part of the way there.

Ted

On Dec 28, 12:21 pm, Axel Bock <justsomeoneoutth...@gmail.com> wrote:
> Hi all,
>
> I have this little problem. In my little webapp I have a data model which
> defines several required fields. Depending on WHO is logged on, some of
> these fields should not be changed by the user and be pre-filled (or better:
> post-filled) by the application.
>
> Currently I delete the fields out of the formset like this:
>             # prevent entering missions for all other bases
>             del missionform.fields['base']
>
> so the field gets not rendered in the view. Which works nicely.
>
> Unfortunately base is required, so the validation fails. Now how can I
> insert the missing values into the POST data? I tried this:
>         if request.user.userflag.is_student:
>             logging.error("studen")
>             inst=FlownMission(
>                 student=request.user,
>                 base=request.user.studentinfo.current_base
>             )
>         flownmission = FlownMissionForm(request.POST, instance=inst)
>
> which does not work at all :( . The validation fails all the time ... . I
> just need to inject 2 required values somewhere in the POST data, but I have
> no clue how.
>
> Any help would be greatly appreciated, and I am a total django "newb" ... :)
>
> Thanks & greetings,
> Axel.

--
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+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment