Добавление значений из словаря в поле ManytoMany

class GuestOrder(models.Model):
    comment = models.CharField(max_length=400, blank=True, null=True)
    guest = models.ForeignKey(Guest, on_delete=models.SET_NULL, null=True)
    dish = models.ManyToManyField(Dish)
    ingredient = models.ManyToManyField(Ingredient)
    table = models.ForeignKey(Table, on_delete=models.CASCADE, blank=True, null=True)

У меня есть набор запросов, который возвращает 3 экземпляра GuestOrder.

guest_orders = GuestOrder.objects.filter(table=table)
<QuerySet [<GuestOrder: GuestOrder object (567)>, <GuestOrder: GuestOrder object (568)>, <GuestOrder: GuestOrder object (569)>]>

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

{
    "guests":{
        "23": [1, 2],
        "24": [2],
        "25": [3]
    }
}

Как установить каждое из этих значений для экземпляра guestorder?

Вот что я пробовал (имя словаря - гости)

for guestorder in guest_orders:
    for key, value in guests.items():
        guestorder.dish.set(value)

Это только устанавливает [3] в качестве блюда

попробуйте это

for guestorder in guest_orders:
    for key, value in guests.items():
        guestorder.dish.add(value)

// or 


for guestorder in guest_orders:
   guest_list = []
   for key, value in guests.items():
       guest_list.append(value)
   guestorder.dish.set(guest_list)

https://docs.djangoproject.com/en/4.1/topics/db/examples/many_to_many/

Поэтому я добавил значения dict в новый список и выполнил итерацию над набором queryset и списком.

    for value in guests.values():
        dishes.append(value)
    for f, b in zip(guest_orders, dishes):
        f.dish.set(b)
Вернуться на верх