क्या मुझे ऑब्जेक्ट फ़ील्ड का मान "obj.field" से किसी अन्य तरीके से प्राप्त हो सकता है। क्या कुछ "obj.get ('field')" मौजूद है? क्षेत्र के मूल्य को स्थापित करने के लिए वही बात।django ऑब्जेक्ट प्राप्त/सेट फ़ील्ड
उत्तर
एक फ़ील्ड का मान प्राप्त करने के लिए (हालांकि मैं 100% यकीन नहीं है):
getattr(obj, 'field_name')
एक क्षेत्र का मान सेट करने के लिए:
setattr(obj, 'field_name', 'field value')
प्राप्त करने के लिए Django ऑब्जेक्ट के लिए सभी फ़ील्ड और मान:
[(field.name, getattr(obj,field.name)) for field in obj._meta.fields]
आप Model _meta API के दस्तावेज़ीकरण को पढ़ सकते हैं जो वास्तव में उपयोगी है।
आप इसे क्यों चाहते हैं?
आप इस्तेमाल कर सकते हैं
obj.__dict__['field']
मैं लगता है ... हालांकि यह एक विधि कॉल
changed=[field for (field,value) in newObj.__dict__ if oldObj.__dict__[field] != value]
नहीं है जहाँ आप बदल कि सभी क्षेत्रों की एक सूची दे देंगे।
उस ऑब्जेक्ट के लिए एक संपादन फ़ॉर्म सबमिट करने के बाद I है: oldObj = ObjModel.objects.get (पी = पी) newObj = editForm.save (प्रतिबद्ध = false) और मैं दो वस्तुओं की तुलना करना चाहते हैं, मुझे पता है जो खेतों संपादित रूप से बदल रहे थे की जरूरत है । क्या क्षेत्र को ऑब्जेक्ट फ़ील्ड की तुलना करके, ऐसा करने का कोई आसान तरीका है? – dandu
हमेशा काम नहीं करता है (विदेशी कुंजी इसे तोड़ती है)। इसके बजाए @ जोआओ मार्कस उत्तर का प्रयोग करें। –
किसी इस छोटे से सवाल पर ठोकर, तो इसका जवाब यहीं है: How to introspect django model fields?
संबंधित क्षेत्रों पाने के लिए:
def getattr_related(obj, fields):
a = getattr(obj, fields.pop(0))
if not len(fields): return a
else: return getattr_related(a, fields)
जैसे,
getattr_related(a, "some__field".split("__"))
पता नहीं, शायद वहाँ एक ऐसा करने का बेहतर तरीका लेकिन यह मेरे लिए काम करता था।
- 1. वैकल्पिक छवि फ़ील्ड (Django)
- 2. Django Rest Framework Dictionary फ़ील्ड
- 3. Django फॉर्म फ़ील्ड ग्रुपिंग
- 4. django में टिमस्टैम्प फ़ील्ड
- 5. Django गतिशील मॉडल फ़ील्ड
- 6. Django व्यवस्थापक विकल्प फ़ील्ड
- 7. Django मॉडल iterate फ़ील्ड
- 8. फ़ील्ड और बेस_फील्ड - Django
- 9. django में गंदे फ़ील्ड
- 10. Django मॉडल फ़ील्ड सत्यापन
- 11. Django मॉडल - मात्रा फ़ील्ड
- 12. django modeltranslation - डिफ़ॉल्ट फ़ील्ड?
- 13. Django मॉडल फ़ील्ड। कस्टम फ़ील्ड मान सेटर
- 14. Django <input ..> फ़ील्ड
- 15. Django: values_list() एकाधिक फ़ील्ड concatenated
- 16. मॉडलफॉर्म पर Django और फ़ील्ड
- 17. Django फॉर्म: छुपा मॉडल फ़ील्ड?
- 18. Django छिपी हुई इनपुट फ़ील्ड
- 19. Django फॉर्म फ़ील्ड लेबल अनुवाद
- 20. Django AdminForm फ़ील्ड डिफ़ॉल्ट मान
- 21. Django modelform अन्य फ़ील्ड विकल्प
- 22. Django order_by फ़ील्ड का योग
- 23. Django कस्टम फ़ील्ड सत्यापनकर्ता बनाम साफ
- 24. Django मॉडल - ऑब्जेक्ट
- 25. ऑब्जेक्ट-स्तरीय अनुमतियां django
- 26. Django ऑब्जेक्ट एकाधिक बहिष्कृत()
- 27. Django में ऑब्जेक्ट स्वामित्व
- 28. यूनिकोड 'ऑब्जेक्ट में Django
- 29. Django अद्यतन ऑब्जेक्ट
- 30. Django: व्यवस्थापक इंटरफ़ेस में एक फ़ील्ड लेना?
संभावित डुप्लिकेट [कैसे introspect django मॉडल फ़ील्ड?] (Http://stackoverflow.com/questions/2384436/how-to-introspect-django-model-fields) –