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

Запись в ManyToMany

18.05.2020, 00:17. Показов 1540. Ответов 2

Студворк — интернет-сервис помощи студентам
Здравствуйте, не могу понять как я могу вносить самостоятельно сущность связанную через отношение много ко многим. У меня такая ситуация. Предметная область "Пекарня". Мне для курсовой работы нужно сделать простое подобие магазина, где клиент заходит выбирает товары и нажимает кнопку заказа. Проблема в том что нужно выбирать какой то товар в определенном количестве, не совсем представляю как это должно работать, допустим неважно какое у меня количество, это как-то отдельно подсчитать можно, нужно по клику "добавить предмет в корзину"(то есть к заказу) этот продукт заносился в заказ. На скриншотах видно как это выглядит, по идее должно это выглядеть как юзер заходит заполнять информацию и видит свои выбранные товары. То что сейчас есть, сделано через формы. Вот как выглядят классы. Собственно формы обычные, которые охватывают в продукте все поля, в заказе продукты и дату(условные дефолты там расставлены, что бы с ними ничего пока не делать). Вопрос, наверное, не очень сложный, но я особо нигде информации не нашел по этому поводу, так что буду благодарен за помощь. Используемая БД postgres.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Product(models.Model):
    class Meta:
        db_table = "Product"
 
    product_id = models.AutoField(primary_key=True)
    name = models.CharField(null=False, max_length=30)
    price = models.PositiveIntegerField(null=False)
    description = models.TextField(null=False)
    category_id = models.ForeignKey(Category, on_delete=models.DO_NOTHING)
    image = models.URLField(default='https://imgholder.ru/600x300/8493a8/adb9ca&text=IMAGE+HOLDER&font=kelson')
 
class Order(models.Model):
    class Meta:
        db_table = "Order"
 
    order_id = models.AutoField(primary_key=True)
    products = models.ManyToManyField(Product)
    client_id = models.ForeignKey(Client, on_delete=models.CASCADE)
    status_id = models.ForeignKey(Status, on_delete=models.CASCADE, default=1)
    date_order = models.DateTimeField(auto_now=True)
    date_of_completion = models.DateTimeField(null=True)
    total_price = models.PositiveIntegerField(null=False, default= 5)
Миниатюры
Запись в ManyToMany   Запись в ManyToMany  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.05.2020, 00:17
Ответы с готовыми решениями:

[Hibernate] Не идет запись в joinTable @ManyToMany
User @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) ...

Запись модели содержащей ManyToMany(fetch = FetchType.LAZY) в базу из формы
Имеется модель типа: @Entity @Table(name="APP_USER") public class User implements Serializable{ @Id...

ManyToMany
Всем привет Не понимаю как получить доступ Product'у связанным с CartLine. Есть у меня две сущности CartLine и Product CartLine: ...

2
3 / 3 / 1
Регистрация: 10.12.2018
Сообщений: 23
18.05.2020, 10:43  [ТС]
Понял как это должно работать, но не знаю как реализовать, по 2ому скриншоту видно что можно выбирать, это выводится переопределенная функция str, которая выводит название, то есть мои продукты заносятся объектами. Получается я должен вносить за каждую кнопку сохранить объект продукта. Вопрос только как вносить объект в отношение много ко многим?
0
15 / 12 / 4
Регистрация: 06.04.2020
Сообщений: 95
18.05.2020, 16:30
Python
1
2
3
products = forms.ModelMultipleChoiceField(label=_('Products'), required=False, queryset=Product.objects.all(),
                                  widget=autocomplete.ModelSelect2Multiple(url='product-autocomplete',
                                                                   attrs={'data-placeholder': "", }))

Соответственно, надо сделать product_autocomplete:

Python
1
 path('product-autocomplete/', ProductAutocompleteView.as_view(), name='product-autocomplete'),

Python
1
2
3
4
5
6
7
8
from dal_select2.views import Select2QuerySetView
class ProductAutocompleteView(Select2QuerySetView):
 
    def get_queryset(self):
        qs = Product.objects.all()
        if self.q:
            qs = qs.filter(name__icontains=self.q)
        return qs
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.05.2020, 16:30
Помогаю со студенческими работами здесь

manyTomany
Добрый день. В базе есть две таблицы со связью многие ко многим(объединяющую их не считаю). И есть два entity этих объектов. У первого...

Hibernate ManyToMany
Помоге пожалуйста или укажите на нормальный рабочий пример. Создавал аннотацией отношения (по некоторым примерам) многие ко многим,...

ManyToMany в админке
Добрый день! Создал модель, одно из полей - models.ForeignKey('self', blank=True), то есть привязка к записям той же таблицы. И теперь в...

@ManyToMany - удаление каскадом
Добрый день, уважаемые коллеги. Подскажите, как можно пометить поля для связки сущностей типа @ManyToMany, чтобы JPA создавал...

ManyToMany связь, удаление
Здравствуйте. Не могу корректнопроизвести удаление, с есть сущности Project package com.sprsec.model; import javax.persistence.*; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru