2015-07-21 2 views
0

Ну, я сталкиваюсь с проблемой, когда выполняется выполнение Ajax с html-страницы, следующая инструкция функции представления не выполняется.Django view не возвращает оператор возврата после Ajax-get

Вот model.py

from django.db import models 
from django.utils import timezone 


class user(models.Model): 
    FB_name=models.CharField(max_length=20) 
    FB_link=models.URLField() 
    FB_usrname=models.CharField(max_length=50) 
    FB_usrID=models.IntegerField() 
    FB_email=models.CharField(max_length=100) 
    reg_date = models.DateTimeField(default=timezone.now) 

    def __unicode__(self): 
     return "{0} {1} {2} {3} {4}{5}".format(self,self.FB_name, self.FB_link, self.FB_usrname,self.FB_usrID,self.FB_email) 

Views.py

 from django.shortcuts import render 
     from django.core.context_processors import csrf 
     from django.views.decorators.csrf import csrf_exempt 
     from django.views.generic import View 
     from django.utils import timezone 
     from django.http import HttpResponse 
     from .models import user 

     class login_call(View): 
      def get(self, request): 
       return render(request, 'login/login.html', {}) 


     class user_details(View): 
       def get(self, request): 
        if request.GET : 
         usrID = request.GET['FB_usrID'] 
         me=user.objects.filter(FB_usrID=usrID).values() 
          if not me: 

        hello=user.objects.create(FB_name=request.GET['FB_name'], 
           FB_link=request.GET['FB_link'], 
           FB_usrname=request.GET['FB_usrname'], 
           FB_usrID=request.GET['FB_usrID'], 
           FB_email=request.GET['FB_email'], 
           reg_date=timezone.now()) 
       hello.save() 
       response = 0 
      else: 
       response = 1 
     return render(request,'homepage/hom.html') 
     return HttpResponse('response', content_type="application/json") 




     class dashboard(View): 
      def get(self, request): 
       return render(request,'homepage/hom.html') 

urls.py

from django.conf.urls import include, url 
from django.contrib import admin 
from event.views import user_details 
from event.views import login_call 
from event.views import dashboard 


urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^user_details/$',user_details.as_view()), 
    url(r'',login_call.as_view()), 
    url(r'^home$',dashboard.as_view()), 

     ] 

наконец GET функция JQuery: -

$.ajax({ 
url:'/user_details/', 
type: 'GET', 
cache:'false', 
data: { 
    FB_usrID:'554113199893', 
    FB_name:'Tharun', 
    FB_link:'[email protected]', 
    FB_usrname:'tharun cow', 
    FB_email:'[email protected]', 

    }, 
success:function(response){ 
    if(response == 0) 
    { 
     document.getElementById("message").innerHTML += "<br>Sent"; 
    } 
    else 
    { 
    document.getElementById("message").innerHTML += "<br>Fail"; 
    } 
    }, 
complete:function(){}, 
error:function (xhr, textStatus, thrownError){} 
}); 

по щелчку fucntion данных передается на сервер с помощью Ajax-получить ответ сервера: -

"GET /user_details/?FB_usrID=554113199893&FB_name=Tharun&F 
    B_link=tharun%40someshit.com&FB_usrname=tharun+lawrence& 
    FB_email=tharun%40gmail.com HTTP/1.1" 200 11476 

цель этого АЯКС-получаете разместить информацию Facebook пользователей с помощью Jquery фб апи Джанго для хранения в db и аутентификации на домашней странице.

+0

Пожалуйста исправить отступы –

+0

i'am новый StackOverflow, будет делать правильно это благодаря вам :) –

ответ

3

Ваш метод user_details(View).get() начинается с заявления return. Очевидно, что выполнение этого метода будет остановить там - вот что такое return означает.

Также (полностью несвязанный, но ...): запрос GET НЕ ДОЛЖЕН изменить состояние сервера. Это то, что для POST/PUT/PATCH и DELETE.

+0

но вопрос даже, что возвращение не не возвращает обработанную страницу, страница просто остается идеальным с конкретным ответом сервера –

+0

«return не возвращает возвращенную страницу»: вы проверили «ответ» на свой вызов ajax? –

+0

да я сделал ... нет никакого ответа вообще, поэтому Fail получает отображаемый –

Смежные вопросы