DJON GO - Запрос полей массива с фильтром DateField - PullRequest
0 голосов
/ 01 мая 2020

У меня есть модель с именем 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'})

...