मैं एक JSONField कक्षा के भीतर दो मानों की तुलना करके एक Django क्वेरी बनाने की उम्मीद कर रहा हूं। मैं मॉडल पर संदर्भ फ़ील्ड के लिए Django F() ऑब्जेक्ट्स में भाग गया, लेकिन यह JSONField के साथ काम नहीं करता है क्योंकि यह बाद के खंड के साथ JOIN
करने का प्रयास करता है। तो, उदाहरण के लिए:Django, JSONField, Postgres, और F() ऑब्जेक्ट तुलना
{
"value_1":20,
"value_2":25
}
मैं ऐसे है जैसे कि यह क्वेरी करने के लिए उम्मीद कर रहा था:
events = Event.objects.filter(data__value_2__gte=F('data__value_1'))
हालांकि, त्रुटि है
class Event(models.Model):
data = JSONField(default=None)
मान डेटा फ़ील्ड कुछ इस तरह दिखता चलो इस तरह कुछ:
Cannot resolve keyword 'value_1' into field. Join on 'data' not permitted.
इसके अलावा कोशिश की है:
events = Event.objects.filter(data__value_2__gte=F('data')['value_1'])
लेकिन त्रुटि दिया हूँ:
TypeError: 'F' object has no attribute '__getitem__'
इसके अलावा, Django 1.10, पायथन 2.7.11, पीजी संस्करण: 9.4.9
किसी भी विचार को value_1 और value_2 की तुलना के आधार पर फ़िल्टर करने का कोई विचार है?
यह सिर्फ एक अनुमान है, लेकिन 'data__value_2__gte = F ('data') ['value_1'] 'आज़माएं। –
काम नहीं किया: TypeError: 'F' ऑब्जेक्ट में कोई विशेषता नहीं है '__getitem__' – dperconti
Django 1.10, पायथन 2.7.11 – dperconti