Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 10.06.2024
Сообщений: 1

Как передать в шаблон django данные из пользовательских полей промежуточной таблицы ManyToMany

10.06.2024, 13:51. Показов 1053. Ответов 1

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста разобраться с django ORM. необходимо передать дополнительные поля из промежуточной модели в шаблон.

никак не могу понять как эти поля выводить так, чтобы они были вместе с данными одной из моделей, которая связана с промежуточной таблицей через ForeignKey.

Models.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Desk(models.Model):
    name = models.CharField(max_length=100)
    deskription = models.TextField(max_length=1000)
 
class Columns(models.Model):
    class Meta:
        ordering = ['order_num']
 
    name = models.CharField(max_length=50)
    desk = models.ForeignKey(Desk, on_delete=models.CASCADE, related_name='desk')
    order_num = models.IntegerField()
    archived = models.BooleanField(default=False)
 
 
class Card(models.Model):
    class Meta:
        ordering = ["-order_num"]
 
    name = models.CharField(max_length=50, null=True, blank=True)
    description = models.TextField(max_length=1000, null=True, blank=True)
    column = models.ForeignKey(Columns, on_delete=models.CASCADE, related_name='cards')
    order_num = models.IntegerField()
    archived = models.BooleanField(default=False)
    status = models.CharField(max_length=20, default='no-status')
 
 
class Sticker(models.Model):
 
    name = models.CharField(max_length=50)
    color = models.CharField(max_length=50)
    icon = models.CharField(max_length=50)
    card = models.ManyToManyField(Card, related_name='stickers', through='StateStickers')
 
 
class StateStickers(models.Model):
    sticker = models.ForeignKey(Sticker, on_delete=models.CASCADE)
    card = models.ForeignKey(Card, on_delete=models.CASCADE)
    state = models.CharField(max_length=50, null=True, blank=True)


views.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class ColumnsViews(View):
    def get(self, request: HttpRequest, name):
     
        prefetch_sticker = Prefetch('stickers', queryset=Sticker.objects.all())
    
        prefetch_cards = Prefetch('cards',                         
            queryset=Card.objects.filter(archived=False).prefetch_related(prefetch_sticker))
 
    
        columns_qset = Columns.objects.filter(desk__name=name, 
                          archived=False).prefetch_related(prefetch_cards)
 
        context = {
            "columns": columns_qset,
            'desk_name': name,
            'param_status': param_status,
        }
        return render(request, "deskapp/columns-list.html", context=context)
Что необходимо: В шаблоне я через for перебираю все Columns, затем в каждой Columns перебираю Cards, и затем в каждой Cards перебираю Stickers. и мне нужно опрашивать есть ли у стикера состояние state. Как запросить из промежуточной модели StateStickers поле state, которое будет доступно вместе с полями модели Sticker, чтобы в шаблоне можно было обратиться через sticker.state
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.06.2024, 13:51
Ответы с готовыми решениями:

Как в Django передать youtube ссылку в шаблон?
Я хочу на сайт добавить ссылки на видео с ютуба ,но при загрузке страницы iframe который ,я добавил через django admin, который я вывел...

Как передать данные из JS в Django?
Здравствуйте, у меня возникла проблема. Я хочу сделать фильтр на сайте, в котором можно будет выбрать несколько пунктов, а потом нажать...

Связь ManyToMany - получить данные из связывающей таблицы
Всем трям. Есть две модели - Filmwork и Person, между ними связь many-to-many. Получаю список filmworks c persons чере...

1
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
10.06.2024, 14:09
Почитайте о связанных моделях в частности о related_name
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.06.2024, 14:09
Помогаю со студенческими работами здесь

Как передать в ссылку django параметр таблицы mysql
Всем доброго времени суток. Задание дали такое: из бд (mysql) выводить на сайт данные в виде доски объявлений. Сделал так, что на...

Работа с ManyToMany, Django 1.9
В общем, есть модель Profile, являющаяся расширением стандартной модели User. Эта модель связана отношением ManyToMany с моделью Feed....

Как передать данные с полей анкеты в одном фрейме в другой фрейм?
Не работает. Общий документ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" ...

Как правильно передать данные из View во ViewModel чтобы не нарушить шаблон MVVM
Здравствуйте. Вопрос такой есть View в него загружается html страница из интернета. И есть обработчик события который выполняется когда...

Django Admin Actions — действия с промежуточной страницей
Добрый день хотел бы освоить данную тему но не могу понять как мне вывести все выбранные записи из post в queryset В общем и целом есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru