I don't know if I'm off target but.....

I'm presently work on something like this where I have have to save three
models at a go. One model is a stand alone while the other two have a
foreign key to the stand alone model which is a many to one relationship.
So to implement the many to one where I can save many of the dependent
models together with the standalone models, I made use of inline formset
and no problems thus far.
On Apr 8, 2016 5:16 PM, "Scot Hacker" <[email protected]> wrote:

> I need to build a pretty complex / non-standard form and am looking for
> advice on the overall architecture. Consider the following models:
>
> class UserProfile(User):
>   ... standard set of fields
>
>
> class ProfileExtra():
>   ForeignKey(UserProfile)
>   extratype (e.g. skill, work experience, website, publication, etc.)
>   ... another set of fields
>
>
> The idea is that, when editing a profile, a user can add an unlimited
> number of these ProfileExtras to their profile. So a user might end up with:
>
> Profile
>   name
>   title
>   about
>   photo
> Skills
>   skill 1
>   skill 2
> Publications
>   pub1
>   pub2
>   pub3
> Jobs
>   job1
>   job2
>
>
> etc. When editing their profiles, they'll be able to add/edit/delete any
> of these *in place* without leaving the page (it'll be ajax.)
>
> So we have one core model and "n" number of related models. Obviously, a
> standard ModelForm can't encompass all of this cleanly. There are several
> things about this that just don't mesh well with Django's forms library. It
> deals with multiple model types, it deals with unknown additional numbers
> of a related model, it needs to be all ajax.
>
> I'm really not sure about the best way to put it all together. I'm
> thinking we probably won't use Django forms at all - just do standard JS to
> create/destroy html form inputs on the page dynamically. Consider the whole
> thing as one big form element, and it all gets submitted every time. In the
> receiving view, pull apart the POST request and process it all manually.
> Advantage: total control. Disadvantage: we lose all the magic provided by
> model and modelform validation.
>
> Another thought is that we could make e.g. "skills" into a single field
> and use ArrayField (we're on postgres) to store all of the related skills.
> Need to experiment with that.
>
> Have any of you solved a similar problem? Are good ways to meet the
> requirements while still being able to take advantage of Django form
> validation goodness? I'm all ears. Thanks.
>
> ./s
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/9a14486b-c7fc-4a99-a0b0-03774c04ae1e%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/9a14486b-c7fc-4a99-a0b0-03774c04ae1e%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CA%2BWjgXN2uJ5yrPuGahV%3D0_yVYHgHspswoZyUaEhv6k6oTy_-ug%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to