Thanks Andreas. I'll poke around with this and see if I can figure it out.
If not; I'll Be Back! :-) Cheers, Tim On Thu, Feb 27, 2014 at 10:18 AM, Andreas Kuhne <[email protected]>wrote: > Hi again Timothy, > > Actually it's much easier than you think. > > The error you showed is a validation error, is it not? > > What you do is that you submit the form via jquery ajax, something like > this should work: > > $.ajax({ type: 'POST', url: the_form_url, dataType: 'html', data: { > email : $('#id_email').val(), name : $('#id_name').val(), phone : > $('#id_phone').val() }, success: function(data){ > $("#old_div_content").html(data); }, error: function(xhr, textStatus, > errorThrown) { console.log('AJAX communication failed:', > textStatus, errorThrown); } }); > > Now you will have to change the function so that the parameters sent to > your view are correct (in the data map), the url is correct and the success > method changes the correct div. You won't have to do any error handling in > jquery at all, because the validation is on the server. When you replace > the html in the div that you want to replace, the user will just get the > validation errors that django creates for you. > > You really don't have to change anything in the view that you are using at > the moment, because it already returns the information that you want in the > div, all you have to do is get in into the div :-) > > Regards, > > Andréas > > > 2014-02-27 14:06 GMT+01:00 Timothy W. Cook <[email protected]>: > >> Hi Andreas, >> >> Thanks for the reply. >> >> >> On Thu, Feb 27, 2014 at 9:42 AM, Andreas Kuhne < >> [email protected]> wrote: >> >>> Hi Timothy, >>> >>> What you probably have to do is submit the form in a ajax call via >>> jquery for example. https://api.jquery.com/jQuery.ajax/ >>> >>> You create a request via the ajax method in jquery and then add a >>> success and error handler. They only have to update the div you want to >>> replace: $("#div_id").html(response). >>> >>> >> >> This certainly seems like a reasonable approach. The points I am unsure >> of is: >> >> 1) how do I catch the template error in jQuery? >> >> 2) I suppose that I have to (somehow) catch the error in the ModelForm? >> >> 3) then send that request to jQuery, somehow? >> >> My forms and views are pretty simple at this point. Here are examples: >> >> class DvCodedStringCreateView(CreateView): >> template_name = 'dvcodedstring_create.html' >> success_url = '/dashboard' >> model = DvCodedString >> form_class = DvCodedStringCreateForm >> fields = >> ['published','prj_name','data_name','lang','description','sem_attr','resource_uri','asserts', >> >> 'terminology','term_subset','codes','t_code','t_string','t_name','t_abbrev','t_version', >> >> 'min_length','max_length','exact_length','enums','enums_annotations','default_value',] >> >> >> >> >> class DvCodedStringCreateForm(forms.ModelForm): >> class Meta: >> model = DvCodedString >> widgets = { >> 'data_name': TextInput(attrs={'size':90}), >> 'description': Textarea(attrs={'cols':80, >> 'rows':5,'wrap':'off'}), >> 'sem_attr': Textarea(attrs={'cols':15, >> 'rows':3,'wrap':'off'}), >> 'resource_uri': Textarea(attrs={'cols':60, >> 'rows':3,'wrap':'off'}), >> 'asserts': Textarea(attrs={'cols':80, >> 'rows':2,'wrap':'off'}), >> 'enums': Textarea(attrs={'cols':30, >> 'rows':5,'wrap':'off'}), >> 'enums_annotations': Textarea(attrs={'cols':50, >> 'rows':5,'wrap':'off'}), >> 't_code': Textarea(attrs={'cols':15, >> 'rows':5,'wrap':'off'}), >> 't_string': Textarea(attrs={'cols':30, >> 'rows':5,'wrap':'off'}), >> 't_abbrev': Textarea(attrs={'cols':10, >> 'rows':5,'wrap':'off'}), >> 't_version': Textarea(attrs={'cols':10, >> 'rows':5,'wrap':'off'}), >> 't_name': Textarea(attrs={'cols':40, >> 'rows':5,'wrap':'off'}), >> >> } >> >> >> >> Thanks in advance for any further guidance. >> >> --Tim >> >> >> >> >>> 2014-02-27 12:38 GMT+01:00 Timothy W. Cook <[email protected]>: >>> >>>> I have no idea where to start on this problem. >>>> My application is work great using the admin UI but to enhance >>>> usability it is time for a new user interface. >>>> >>>> I am using dynatree.js to create a 'Project' tree with subelements >>>> (called PcTs) grouped into types; IOW: There are three levels before you >>>> get to an editable component. Hence the reason to use a tree instead of >>>> paging through the admin UI. >>>> >>>> So my UI (Selection_001.png) uses <div> tags to layout the spaces. >>>> Basically tree on the left and a larger editing space next to it. My >>>> forms a re properly placed inside the scrollable <div>. My problem is when >>>> I get an error in the form, how do I control it so that it is only >>>> displayed in the same <div> where the form was displayed? What I get now >>>> is a full page reload. See Selection_002.png >>>> >>>> The template does not use any extend or include directives. It is a >>>> completely self contained HTML file. >>>> There are forms and views for each of the PcTs. >>>> >>>> >>>> Any ideas on where to start working on this? >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> MLHIM VIP Signup: http://goo.gl/22B0U >>>> ============================================ >>>> Timothy Cook, MSc +55 21 994711995 >>>> MLHIM http://www.mlhim.org >>>> Like Us on FB: https://www.facebook.com/mlhim2 >>>> Circle us on G+: http://goo.gl/44EV5 >>>> Google Scholar: http://goo.gl/MMZ1o >>>> LinkedIn Profile:http://www.linkedin.com/in/timothywaynecook >>>> >>>> -- >>>> 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 http://groups.google.com/group/django-users. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/django-users/CA%2B%3DOU3UZppis4c8rr_Ok9rQ_SO6uXK6iii8HG7cPHE9qq1CWLw%40mail.gmail.com >>>> . >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>> >>> -- >>> 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 http://groups.google.com/group/django-users. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/django-users/CALXYUbno2-CvWgs%2BZjTWO7zU0C3YkvnzLCs3S0stiPGvDvBPBA%40mail.gmail.com >>> . >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >> >> >> >> -- >> MLHIM VIP Signup: http://goo.gl/22B0U >> ============================================ >> Timothy Cook, MSc +55 21 994711995 >> MLHIM http://www.mlhim.org >> Like Us on FB: https://www.facebook.com/mlhim2 >> Circle us on G+: http://goo.gl/44EV5 >> Google Scholar: http://goo.gl/MMZ1o >> LinkedIn Profile:http://www.linkedin.com/in/timothywaynecook >> >> -- >> 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 http://groups.google.com/group/django-users. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/CA%2B%3DOU3Uky1-JSEsW8towv4gQz9hFH_c5dx1w6HaCdRA%2B9ZKshA%40mail.gmail.com >> . >> >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- > 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 http://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/CALXYUbmK74Nk57X6gkMOWRxscsWbv6REo0g%3Dqu1k1mdZMuqMRg%40mail.gmail.com > . > > For more options, visit https://groups.google.com/groups/opt_out. > -- MLHIM VIP Signup: http://goo.gl/22B0U ============================================ Timothy Cook, MSc +55 21 994711995 MLHIM http://www.mlhim.org Like Us on FB: https://www.facebook.com/mlhim2 Circle us on G+: http://goo.gl/44EV5 Google Scholar: http://goo.gl/MMZ1o LinkedIn Profile:http://www.linkedin.com/in/timothywaynecook -- 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 http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CA%2B%3DOU3XfmJe8WevvBgqvSOxLKUyD%3DBY%2BEaxse5Re4a-Rym25hw%40mail.gmail.com. For more options, visit https://groups.google.com/groups/opt_out.

