Джанго. Ошибка создания объекта ManyToManyField

0

Я пытаюсь написать тесты для своих моделей.

Я пытаюсь создать объект следующим образом:

    GiftEn.objects.create(gift_id=1,
    name="GiftEn",
    description="GiftEn description",
    short_description="GiftEn short description",
    categories='1',
    partner='1',
    addresses=2)

Но я получаю эту ошибку:

File "/home/stasman/giver/giver/giver/gift/test_gift.py", line 29, in setUp
    addresses=2)

ValueError: "<GiftEn: GiftEn, GiftEn description, GiftEn short description>" needs to have a value for field "giften" before this many-to-many relationship can be used.

Вот моя модель:

class GiftEn(models.Model):
    gift = models.ForeignKey(Private, on_delete=models.CASCADE)
    name = models.CharField(max_length=100)
    description = models.TextField(max_length=1000)
    short_description = models.TextField(max_length=500)
    categories = models.ManyToManyField(CategoryEn,)
    partner= models.ManyToManyField(Partner,)
    addresses= models.ManyToManyField(AddressWhereTakeGift,)

    def __str__(self):
        return '%s, %s, %s' % (self.name, self.description, self.short_description)

    class Meta:
        ordering = ('-gift__id',)

Как создать объект для этой модели?

Теги:
testing

1 ответ

0
Лучший ответ

По описанию ошибки вам нужно создать (сохранить) объект GiftEn прежде чем добавить many2many:

giften = GiftEn.objects.create(
    gift_id=1,
    name="GiftEn",
    description="GiftEn description",
    short_description="GiftEn short description")

giften.categories.add('1')
giften.partner.add('1')
giften.addresses.add(2)
  • 0
    Это '1' не 1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню