bug in bulk_create

276 views
Skip to first unread message

nima salemahim

unread,
Aug 4, 2020, 8:10:15 AM8/4/20
to Django users

Traceback (most recent call last):
  File "/usr/lib/python3.7/code.py", line 90, in runcode
    exec(code, self.locals)
  File "<console>", line 1, in <module>
  File "/home/nima/.virtualenvs/behtarino/lib/python3.7/site-packages/django/db/models/fields/related_descriptors.py", line 946, in add
    through_defaults=through_defaults,
  File "/home/nima/.virtualenvs/behtarino/lib/python3.7/site-packages/django/db/models/fields/related_descriptors.py", line 1150, in _add_items
    ])
TypeError: bulk_create() got an unexpected keyword argument 'ignore_conflicts'

hi i have three models

when i try to add on deal to one a category 

like : deal.categories.add(category)

i face error above can you help me about what the problem is ?

i dont know exactly it is django problem or django-ordered-model module problem

class Deal(ModificationLogMixin, models.Model):
title = models.CharField(max_length=160, blank=True, null=True)
description = models.TextField(blank=True, null=True)
initial_price = models.IntegerField(blank=True)
discounted_price = models.IntegerField(blank=True)
categories = models.ManyToManyField(
'deal.DealCategory',
related_name='deals',
blank=True,
through='DealCategoryThrough',
through_fields=('deal', 'dealcategory')
)
class DealCategory(OrderedModel):
business = models.ForeignKey(Business, related_name='deal_categories',
on_delete=deletion.CASCADE)
name = models.CharField(max_length=100, blank=True, null=True)
order_with_respect_to = 'business'
class DealCategoryThrough(OrderedModel):
deal = models.ForeignKey('deal.Deal', on_delete=models.deletion.CASCADE,
related_name='ordered_deals')
dealcategory = models.ForeignKey(DealCategory, on_delete=models.deletion.CASCADE,
related_name='ordered_deals')
order_with_respect_to = 'dealcategory'

Jakub Stawowy

unread,
Nov 6, 2020, 7:24:34 PM11/6/20
to Django users
That's happened in Django 3.x when Method 'add' is used with many-to-many relations if intermediate model is used. consider call it on intermediate model manager like `DealCategoryThrough.objects.create(deal=deal, dealcategory=category)`
Reply all
Reply to author
Forward
0 new messages