ajax with django forms

萝らか妹 提交于 2019-12-20 06:26:26

问题


can i add the ajax code with django? i have created a simple registraion form that have 5 fields . i wish to disply the each fields in different pages but in a single window . it means by using next button 5 pages want to disply in a single window. same time all content of each page i want add to my database. is this possible in django with ajax..

my codes are as follows :

      #view 

        from django.shortcuts import render_to_response
        from registration.models import UserDetails
        from forms import UserForm
        from django import forms
        from django.template import RequestContext
        from django.http import HttpResponseRedirect

        def user_details(request):
            if request.method == 'POST':
                form = UserForm(request.POST)
                if form.is_valid():
                    form.save()


            else:
                form = UserForm()        
            return render_to_response("career.html", {"form": form},context_instance=RequestContext(request))



#form 

     from django import forms
     from registration.models import UserDetails

     class UserForm(forms.ModelForm):
        pass

        class Meta:
            model = UserDetails



#model 

        from django.db import models

        class UserDetails(models.Model):
            fname=models.CharField(max_length=20)
            lname=models.CharField(max_length=20)
            email = models.EmailField()
            address = models.CharField(max_length=50)
            country = models.CharField(max_length=20)
            def __unicode__(self):
                return self.fname
                return self.lname
                return self.email
                return self.address
                return self.country



 #url

        from django.conf.urls.defaults import patterns, include, url

        from django.contrib import admin
        admin.autodiscover()

        urlpatterns = patterns('',
            # Examples:
             url(r'^registration/$', 'registration.views.user_details', name='user_details'),

            url(r'^admin/', include(admin.site.urls)),
        )



 # template 

        <form enctype="multipart/form-data" method="post">{% csrf_token %}
            {{ form.as_p }}
           <input type="submit" ....>
        </form>

回答1:


Whay have you tried for ajax call?

Server just serve some result to client then it is up to your client code:

  • either it is post back that you refresh page
  • or iframe, you refresh a frame in parent doc
  • or html tag like tag that you inject by $(targetElement).html($someResultFromServer)

In most case server does not even care what and how it looks like client(rich or thin), Thats you javascript, query and css codes which to works on behalf of client. Vice versa, in most case client does not even care what is and how it looks like it is server: Loosely coupled

For ajax calls you can follow this link: http://api.jquery.com/jQuery.ajax/




回答2:


As Martin Thurau stated your question is very hard to understand. Regardless I think that what you are asking for is a stepped form.

Best you take a look at Django's Form Wizard here



来源:https://stackoverflow.com/questions/9063241/ajax-with-django-forms

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!