Hi! Regarding the .values() problem with JSON fields, has anyone as of yet thought about how escaping of attribute names in JSON fields is supposed to work?
We are using a JSON field to store user-defined extension fields. So say the user wants a "foo" text field. Then we'd store: o.data = {} o.data['foo'] = "Some text" Then later, we can do SomeModel.objects.filter(data__foo__icontains="some") or SomeModel.objects.values_list('data__foo'). But in reality, since this is user defined, 'foo' above comes from a variable so the filter() has to be done with **{'data__' + field_name + '__icontains': "some"}. And then what happens when the user wants a field called "Foo the Bar"? Or "__init__"? I haven't found a way to escape the field names in the documentation. Perhaps I'm not looking in the right place? It seems to me that we need something like JSONPath('data__', field_name) that hooks into the JSONField infrastructure. Just to be clear, we have this in production in a fairly large system, and solved the escape problem by constraining the field names from containing __ and some other things. But not spaces, so were bitten by the new runtime check on .values(). Ole -- You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-developers+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/7eadcb6a-34fb-4a24-8205-0d3b18037dd8n%40googlegroups.com.