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

तो इस तरह दिखने के लिए मूल्य के बजाय:

role: this_is_my_role

मुझे इस तरह दिखने के लिए इसकी आवश्यकता है:

role: this is my role

लेकिन केवल मेरे विचार के लिए। मैंने निम्नलिखित की कोशिश की है लेकिन यह काम नहीं करता है।

def view_info(request):
    device = Device.objects
    for item in device:
        item.role = item.role.replace('_', ' ')

    return render(request, 'table_view.html', {'device': device})

कृपया ध्यान दें, मैं डेटाबेस में वास्तविक मान को नहीं बदलना चाहता हूं। मैं केवल टेम्पलेट को प्रस्तुत करने से पहले मान बदलना चाहता हूं।

0
Comm4nd0 9 अक्टूबर 2018, 13:01

1 उत्तर

सबसे बढ़िया उत्तर

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

class Device(models.Model):
    ...
    @property
    def role_output(self):
        return self.role.replace('_', ' ')

अब आप केवल टेम्पलेट में क्वेरीसेट पास कर सकते हैं, और अपना परिवर्तित मूल्य प्राप्त करने के लिए {{ device.role_output }} कर सकते हैं।

2
Daniel Roseman 9 अक्टूबर 2018, 13:23