У меня есть модель с именем GOALS, у нее есть поле типа "ArrayModelField". Это поле представляет собой список другой модели с именем GOAL, которая имеет поле типа Date, как показано ниже:
from djongo import models
class Goal(models.Model):
date = models.DateField()
daily_value = models.FloatField()
hourly_values = models.ListField(default=[])
class Goals(models.Model):
name = models.TextField(primary_key=True, null=False, blank=False)
goals = models.ArrayModelField(model_container=Goal, default=[])
eu = models.TextField(null=True, blank=True)
Я пытаюсь отфильтровать результаты по полям во внутренней модели (GOAL), и Я знаю, что это возможно, потому что в документации Djon go есть несколько примеров, показывающих, как это сделать:
class Blog(models.Model):
name = models.CharField(max_length=100)
tagline = models.TextField()
class Author(models.Model):
name = models.CharField(max_length=200)
email = models.EmailField()
class Entry(models.Model):
blog = models.EmbeddedField(
model_container=Blog,
model_form_class=BlogForm
)
headline = models.CharField(max_length=255)
authors = models.ArrayField(
model_container=Author,
model_form_class=AuthorForm
)
entries = Entry.objects.filter(authors={'name': 'Paul'})
Или даже глядя на специфику c позиция массива, вот так:
entries = Entry.objects.filter(authors={'2.name': 'Paul'})
Но в моем случае я хочу go немного дальше, я хочу фильтровать по указанному c ГОДУ в моем DateField. В DJANGO было бы что-то вроде этого:
Goals.objects.filter(date__year='2011')
Интересно ... есть ли что-то подобное в DJON GO? Может быть, что-то в этих строках?
Goals.objects.filter(goals={'date__year': '2020'})