Добавление дополнительного поля и значения к объектам набора запросов django - PullRequest
0 голосов
/ 23 июня 2019

Позвольте следующую модель:

class Books(models.Model):
    b_name = models.CharField(max_length=10)
    b_page = models.IntegerField()

Я хочу добавить дополнительное поле с другими значениями на основе зарегистрированного пользователя и другого объекта модели в представлениях.

другая модель выглядит следующим образом: , чьи значения take_on я хочу прикрепить к модели. Книги:

class BookTakerInfo(models.Model):
    user = models.CharField(max_length=25)
    book_taken = models.CharField(max_length=25)
    taken_on = models.CharField(max_length=25)

И затем отрендерить ее до шаблонов, чтобыЯ могу использовать его следующим образом:

{% for b in books_qs %}
    {{b.extra_field}}
{% endfor %}

Может быть в таких представлениях:

qs = Books.objects.filter(...)
for q in qs:
    obj = BookTakerInfo.objects.filter(...).first()
    q.add("taken_on", obj.taken_on)

И так как значения разные и зависят от пользователя и взяты на дату, поэтому я могуНе используйте модельное поле для этой задачи.Поэтому, пожалуйста, помогите мне с некоторым решением.Пожалуйста, ПОМОГИТЕ !!!!

1 Ответ

0 голосов
/ 23 июня 2019

Вы можете использовать annotate() и F для этой цели:

from django.db.models import F


qs = Books.objects.filter(...).annotate(related_value=F('related_object__value'))

# In the end, you can access the annotated value like this:
qs.first().related_value

Таким образом вы можете добавить целочисленное значение связанного объекта, какВы желаете.

...