I have a Blog Post model with a body field that contains structured text. Translation is enabled on the body field.
My issue is I can’t figure out how to query for Blog Posts that have actually been populated with content (not all posts are translated, and not all languages have a translation for every post). Even for languages I have populated no content for, the value of the field is:
“body”: {
“value”: {
“schema”: “dast”,
“document”: {
“type”: “root”,
“children”: [
{
“type”: “paragraph”,
“children”: [
{
“type”: “span”,
“value”: “”
}
]
}
]
}
}
},
Any suggestions?
hi @kaushik I think you are right. It might be a bug. Let me check this with the team!
Trying to work around this. I can’t seem to get matches to work as an alternative.
allBlogPosts(filter: {body: {exists: "true", matches: "\{\"type\":\"root\",\"children\":\[\{\"type\":\"paragraph\",\"children\":\[{\"type\":\"span\",\"value\":\"\"\}\]\}\]\}"}}, locale: fr) {
id
body {
value
}
}
}
throws this:
{
"errors": [
{
"message": "Parse error on \"\\\"\" (error) at [1, 64]",
"locations": [
{
"line": 1,
"column": 64
}
]
}
]
}
But I’m not sure why.
I’m not sure if you can filter on a property of the content. You should filter on the value of it, but I cannot find a way to do that, sorry.
We’ll be in touch about a proper way to solve this, sorry
Hi @kaushik, we just added a new filter for this called isBlank
:
{
allBlogPosts(filter: {body: {isBlank: false}}) {
...
}
}
2 Likes
Awesome. This is exactly what I needed.