तो, यहां एक अजीब स्थिति में तरह। मुझे अपनी एपीआई को शक्ति देने के लिए TastyPie का उपयोग करके एक Django प्रोजेक्ट मिला है और कुछ दृश्य/टेम्पलेट्स जिनका उपयोग विभिन्न साइटों के लिए प्लगइन पावर करने के लिए किया जाएगा। मानक Django टेम्पलेट्स के रूप में इस प्लगइन को बनाने के बजाय, मुझे प्लगइन के अनुरोधों को संसाधित करने के लिए हमारे एपीआई का उपयोग करने के लिए कहा गया है, जिसका अर्थ है कि मैं अपने सर्वर पर किसी अन्य दृश्य से एक दृश्य बुला रहा हूं, और किसी कारण से जो काम नहीं कर रहा है मेरे किसी भी विचार के साथ।किसी अन्य दृश्य से मेरे सर्वर पर एक एपीआई कॉल करें
#views.py
from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.template.context import Context, RequestContext
import json, urllib, urllib2
SITE_NAME = "http://localhost:8000/"
API_PATH = "api/v1/"
def aggregate(request):
template = 'lemonwise/plugins/aggregate.html'
sku = request.GET.get('sku')
url = ''.join([SITE_NAME, API_PATH, 'product/?sku=', sku])
product = json.loads(urllib.urlopen(url).read())['objects'][0]
return render_to_response(template, product)
def reviews(request):
template = 'lemonwise/plugins/reviews.html'
sku = request.GET.get('sku')
url = ''.join([SITE_NAME, API_PATH, 'product/?format=json&sku=', sku])
#Comment the next line out and the url is passed correctly
response = urllib2.build_opener().open(url).read()
return HttpResponse(url)
#page = opener.open(url).read()
#return HttpResponse(url)
#product = json.loads(urllib2.build_opener().open(url).read())['objects'][0]
#return HttpResponse(url)
#reviews = [json.loads(urllib.urlopen(SITE_NAME + uri)) for uri in product['reviews']]
#return render_to_response(template, {'reviews': reviews})
def survey(request):
template = 'lemonwise/plugins/survey.html'
sku = request.GET.get('sku')
url = ''.join([SITE_NAME, API_PATH, 'product/?sku=', sku])
product = json.loads(urllib2.build_opener().open(url).read())['objects'][0]
return render_to_response(template, product)
def mosthelpfulpositive(request):
template = 'lemonwise/plugins/mosthelpfulpositive.html'
sku = request.GET.get('sku')
url = ''.join([SITE_NAME, API_PATH, 'product/?sku=', sku])
product = json.loads(urllib2.build_opener().open(url).read())['objects'][0]
uri = product['most_helpful_positive']
most_helpful_positive = json.loads(urllib.urlopen(SITE_NAME + uri))
return render_to_response(template, most_helpful_positive)
def mosthelpfulnegative(request):
template = 'lemonwise/plugins/mosthelpfulnegative.html'
sku = request.GET.get('sku')
url = ''.join([SITE_NAME, API_PATH, 'product/?sku=', sku])
product = json.loads(urllib2.build_opener().open(url).read())['objects'][0]
uri = product['most_helpful_negative']
most_helpful_negative = json.loads(urllib.urlopen(SITE_NAME + uri))
return render_to_response(template, most_helpful_negative)
और इसी urls.py (किसी भिन्न ऐप में): संदर्भ के लिए
#urls.py
from django.conf import settings
from django.conf.urls.defaults import patterns, include, url
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from tastypie.api import Api
from lemonwise.reviews.api import *
admin.autodiscover()
v1_api = Api(api_name='v1')
v1_api.register(UserResource())
v1_api.register(MerchantResource())
v1_api.register(ProductFamilyResource())
v1_api.register(ProductResource())
v1_api.register(BooleanAttributeResource())
v1_api.register(SlideAttributeResource())
v1_api.register(ProductAttributeResource())
v1_api.register(SubmissionResource())
v1_api.register(ReviewResource())
v1_api.register(ReviewProductAttributeResource())
v1_api.register(CommentResource())
v1_api.register(BestUseResource())
v1_api.register(HelpfulVoteResource())
#Acess the api via http://127.0.0.1:8000/api/v1/user/?format=json
urlpatterns = patterns('',
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
# Lemonwise apps
url(r'^reviews/', include('lemonwise.reviews.urls')),
#API
url(r'^api/', include(v1_api.urls)),
)
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()
पर कोई विचार कैसे इसे ठीक करने के लिए? मुझे इस विषय पर कोई लेख नहीं मिल रहा है।
संपादित करें: अधिक विशेष रूप से, क्या हो रहा है कि जब मैं इनमें से कोई भी विचार लोड करता हूं तो वे एपीआई पृष्ठ को पढ़ने की कोशिश कर रहे हैं। इसके अलावा, मेरा सर्वर संसाधित किए जा रहे किसी भी अनुरोध का कोई संकेत नहीं दिखाता है। (हालांकि मैं सीधे एपीआई पेज लोड कर सकता हूं।)
जब तक आप AJAX का उपयोग नहीं कर रहे हैं, मुझे इस तरह से वेबसाइट बनाने में कोई लाभ नहीं दिखता है। मुझे लगता है कि आपकी वास्तविक समस्या आपके मालिक से बात कर रही है और उसे बता रही है कि उसकी योजना ज्यादा समझ में नहीं आती है (पाठ्यक्रम के उन सटीक शब्दों में नहीं)। –
ईमानदारी से, मैं उस समाधान की तरफ झुका रहा हूं, हालांकि मुझे लगता है कि यह किसी भी तरह से संभव होना चाहिए। –
हालांकि क्या काम नहीं कर रहा है? –