Django

2010-11-23 11 views
9

में वर्तमान एप्लिकेशन कैसे प्राप्त करें मैं दो अनुप्रयोगों के साथ एक परियोजना बनाने के लिए Django 1.3 अल्फा का उपयोग कर रहा हूं। कक्षा-आधारित विचारों के कारण मैं 1.3 का उपयोग करता हूं। इन दो अनुप्रयोगों के लिए मेरे पास सामान्य आधार दृश्य-वर्गों का एक सेट है, जो अनुप्रयोगों के वास्तविक विचारों से विरासत में हैं। बेस क्लास में, यह जानने का कोई तरीका है कि दृश्य को "कॉल" किस एप्लिकेशन से किया जाता है? जैसे क्या मैं "वर्तमान" एप्लिकेशन प्राप्त करने के लिए यूआरएल का उपयोग कर सकता हूं? resolve(self.request.path):Django

उत्तर

7

आप सामान्य सूची और विवरण दृश्य है कि django आप मॉडल है कि दृश्य के बारे में जानकारी प्रदर्शित करता है तक पहुँचने में self.model यहां पहुंच सकता है प्रदान करता है से इनहेरिट रहे हैं, तो अन्यथा आप शायद django's resolve() का उपयोग होगा।

# views.py 
from django.views.generic.base import View 
class MyView(View): 
    app_name = None 

# urls.py 
from django.conf.urls.defaults import * 
from some_app.views import MyView 

urlpatterns = patterns('', 
    (r'^myview/', MyView.as_view(app_name='app_name')), 
) 

तो फिर तुम self.app_name के माध्यम से इसे उपयोग करने में सक्षम होना चाहिए:

आप अपना स्वयं का View उपवर्ग है कि आप अपनी पसंद का एक कीवर्ड के साथ फोन कर सकता है।

+1

मुझे नहीं पता था कि हल() से वापस ऑब्जेक्ट को एक app_name विशेषता है। मैंने अपनी शीर्ष प्रोजेक्ट url-config फ़ाइल को ऐप_नाम तर्क का उपयोग करने के लिए ऐप_नाम तर्क का उपयोग करने के लिए एप्लिकेशन विशिष्ट यूआरएल-कॉन्फिग सहित कॉल को शामिल किया है, फिर वहां से app_name प्राप्त करने के लिए हल() का उपयोग करना। धन्यवाद! –

+0

मैंने कोशिश की, लेकिन app_name चर हमेशा 'कोई नहीं' देता है। कोई सलाह? –

+0

आप चर का उपयोग कैसे कर रहे हैं? –