用于过滤器查询的django自定义函数
django custom function for filter query
我的模型中有一个名为 test_data = models.TextField(...)
的字段,该模型名为 MyOrm
而这个 test_data
包含实际上是字符串的数据,一些包含 JSON 数据,一些引用 blob-url.
现在我正在努力简化我的数据。所以我想过滤所有 test_data
不是 JSON 的 MyOrm
对象。
我只是 storing/trying 将一些元数据与 url 一起存储,然后我将它们转换。
任何人都可以建议我这样做的方法吗??
伪代码:
select all my-orm where is_not_json(my-orm.test-data)
据我所知,没有这方面的数据库功能。您可以定义自己的,但这更多的是数据库编程。
我认为你别无选择,只能枚举 MyOrm
模型对象,并检查你是否可以 JSON 解码这些对象,使用:
import json
for item in MyOrm.objects.all():
try:
json.loads(item.test_data)
except ValueError:
# is invalid JSON, process
# …
pass
或者如果内存可能有问题,您可以使用 .iterator(…)
[Django-doc]:
import json
for item in MyOrm.objects.all()<b>.iterator()</b>:
try:
json.loads(item.test_data)
except ValueError:
# is invalid JSON, process
# …
pass
我的模型中有一个名为 test_data = models.TextField(...)
的字段,该模型名为 MyOrm
而这个 test_data
包含实际上是字符串的数据,一些包含 JSON 数据,一些引用 blob-url.
现在我正在努力简化我的数据。所以我想过滤所有 test_data
不是 JSON 的 MyOrm
对象。
我只是 storing/trying 将一些元数据与 url 一起存储,然后我将它们转换。
任何人都可以建议我这样做的方法吗??
伪代码:
select all my-orm where is_not_json(my-orm.test-data)
据我所知,没有这方面的数据库功能。您可以定义自己的,但这更多的是数据库编程。
我认为你别无选择,只能枚举 MyOrm
模型对象,并检查你是否可以 JSON 解码这些对象,使用:
import json
for item in MyOrm.objects.all():
try:
json.loads(item.test_data)
except ValueError:
# is invalid JSON, process
# …
pass
或者如果内存可能有问题,您可以使用 .iterator(…)
[Django-doc]:
import json
for item in MyOrm.objects.all()<b>.iterator()</b>:
try:
json.loads(item.test_data)
except ValueError:
# is invalid JSON, process
# …
pass