2008-12-05 8 views
25

के बजाय example.com पर इंगित करता है मैंने अपने मॉडल में से एक को get_absolute_url फ़ंक्शन जोड़ा।Django व्यवस्थापक का "साइट पर देखें" मेरे डोमेन

def get_absolute_url(self): 
    return '/foo/bar' 

व्यवस्थापक साइट यह ऊपर उठाता है और उस वस्तु के विवरण पृष्ठ पर लिंक "साइट पर दृश्य" एक कहते हैं (जब मैं "/ foo/बार" के बजाय वहाँ एक वास्तविक URL डाल)।

समस्या http://localhost:8000/foo/bar पर जाने की बजाय समस्या है, यह http://example.com/foo/bar पर जाता है।

मैं क्या गलत कर रहा हूं?

उत्तर

24

आपको default site डोमेन मान बदलना होगा।

+6

धन्यवाद पंक्तियों के साथ। यह समझने में मुझे कुछ समय लगा कि यह कैसे करना है। यह django_site तालिका में एक प्रविष्टि है। मैंने व्यवस्थापक में "साइट्स" पर क्लिक करके इसे पाया और बदल दिया। –

3

यदि आप व्यवस्थापक सक्षम हैं तो आप इसे/admin/साइटों में बदल सकते हैं।

4

सबसे मजेदार बात यह है कि "example.com" एक स्पष्ट स्थान पर दिखाई देता है। फिर भी, मैं एक घंटे या उससे भी ज्यादा समय की तलाश में था।

बस अपने व्यवस्थापक इंटरफ़ेस का उपयोग -> साइटें -> ... वहाँ यह है :)

1

जब आप संपादित किया है एक साइट उदाहरण सोचा व्यवस्थापक, आप परिवर्तन प्रभावी करने के लिए अपने वेब सर्वर को पुनः आरंभ करने की जरूरत है । मुझे लगता है कि इसका मतलब यह होना चाहिए कि डेटाबेस केवल तभी पढ़ा जाता है जब वेब सर्वर पहले शुरू होता है।

3

जैसा कि अन्य ने उल्लेख किया है, यह default sites framework के साथ है।

आप डेटाबेस माइग्रेशन के लिए South (शायद एक अच्छा सामान्य रूप में विचार) का उपयोग कर रहे हैं, तो आप कर सकते हैं use a data migration to avoid having to make this same database change everywhere you deploy your application, की

from south.v2 import DataMigration 
from django.conf import settings 

class Migration(DataMigration): 

    def forwards(self, orm): 
     Site = orm['sites.Site'] 
     site = Site.objects.get(id=settings.SITE_ID) 
     site.domain = 'yoursite.com' 
     site.name = 'yoursite' 
     site.save() 
संबंधित मुद्दे