Аннотация 'item_id' конфликтует с полем в модели в Django 3.0
Я обновил свой проект последними версиями python и Django
Я получаю эту ошибку "Аннотация 'item_id' конфликтует с полем в модели"
Вот мой views.py
selected_pricelist = int(pricelist or request.COOKIES.get('selected_pricelist', 0))
if selected_pricelist:
try:
item_prices = ItemPrices.objects.filter(
item__in=data, client=client,
pricelist_id=selected_pricelist)
except ItemPrices.DoesNotExist:
logger.debug('Item prices not found')
selected_pricelist = ''
else:
data = item_prices.order_by('-item__created_at').annotate(
item_id=F('item_id'), item_name=F('item__item_name'),form=F('item__form'),
part_number=F('item__part_number'),height=F('item__height'),
description=F('item__description'),girth=F('item__girth'),
currency=F('pricelist__currency'),long=F('item__long'),pot_size=F('item__pot_size'),
lat=F('item__lat'),grading=F('item__grading'),area=F('item__area'),
unit_price=F('price'), quantity=F('item__quantity'),
supplier=F('item_id__supplier_one__supplier_name'),
batch_number=F('item_id__batch_number')).values()
Вот мой models.py
class JobItems(models.Model):
item_name = models.CharField(max_length=512)
batch_number = models.CharField(max_length=200, blank=True, null=True)
....
....
class PriceList(TimeStampedModel):
client = models.ForeignKey(Client,on_delete=models.CASCADE)
name = models.CharField(max_length=40)
currency = models.CharField(max_length=10, choices=CURRENCY_CHOICES,
default=CURRENCY_CHOICES[0][0])
class Meta:
ordering = ('name', )
unique_together = (('client', 'name'), )
def __str__(self):
return self.name
class ItemPrices(TimeStampedModel):
client = models.ForeignKey(Client,on_delete=models.CASCADE)
pricelist = models.ForeignKey(PriceList,on_delete=models.CASCADE)
item = models.ForeignKey(JobItems,on_delete=models.CASCADE)
price = models.DecimalField(max_digits=10, decimal_places=2,
help_text=_('Price in GBP'))
class Meta:
unique_together = (('pricelist', 'item'), )
Вот трассировка моей ошибки
Traceback (most recent call last):
File "/home/xyz/abc/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/home/xyz/abc/lib/python3.7/site-packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/xyz/abc/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/xyz/abc/lib/python3.7/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "/home/xyz/abc/lib/python3.7/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/home/xyz/test/dev-1.8/server/mcam/views.py", line 8238, in get_data
batch_number=F('item_id__batch_number')).values()
File "/home/xyz/abc/lib/python3.7/site-packages/django/db/models/query.py", line 1067, in annotate
"the model." % alias)
ValueError: The annotation 'item_id' conflicts with a field on the model.
Здесь я использую версию python - 3.7 и Django версии 3.0
Как я могу изменить свой код, чтобы ошибка была исправлена