Я ознакомился с документацией по настройке здесь https://django -taggit.readthedocs.io / en / latest / custom_tagging.html # genericuuidtaggeditembase
Я использую следующий код, когда я сохраняю продукт через администратор django, таблицы заполняются должным образом, но когда я читаю продукт, теги появляются как None
каталог / models.py
from django.db import models
from django.db.models import ImageField
from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy as _
from taggit.managers import TaggableManager
from taggit.models import GenericUUIDTaggedItemBase, TaggedItemBase
from common.models import ModelBase
from customer.models import ApplicationUser
from order_quick.settings import APPLICATION_CURRENCY_SYMBOL
class TaggedItem(GenericUUIDTaggedItemBase, TaggedItemBase):
class Meta:
verbose_name = _("Tag")
verbose_name_plural = _("Tags")
class Product(ModelBase):
supplier = models.ForeignKey(ApplicationUser, on_delete=models.DO_NOTHING)
name = models.CharField(max_length=255)
description = models.CharField(max_length=255)
image = ImageField(upload_to='images/products/', blank=True, null=True)
cost_price = models.DecimalField(max_digits=9,
decimal_places=2,
verbose_name="Cost Price " + "(" + APPLICATION_CURRENCY_SYMBOL + ")")
selling_price = models.DecimalField(max_digits=9,
decimal_places=2,
verbose_name="Selling Price " + "(" + APPLICATION_CURRENCY_SYMBOL + ")")
is_active = models.BooleanField(default=True)
tags = TaggableManager(through=TaggedItem)
def __str__(self):
return "{0}".format(self.name)
общее / models.py
import uuid
from enum import Enum
from django.db import models
class ModelBase(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
abstract = True
Приведенный выше код создает новую таблицу 'catalog_taggeditem' в моем приложении django под названием 'catalog'. Существует также таблица по умолчанию из django-taggit, которая называется taggit_taggeditem. Похоже, что во время чтения, он не может соединить точки. Я не уверен, что мне не хватает, ошибок нет.
Спасибо за вашу помощь.
----------------------- UPDATE --------------------
Product.objects.first().tags.first()
Traceback (most recent call last):
File "/home/chirdeep/envs/order-quick/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
psycopg2.ProgrammingError: operator does not exist: character varying = uuid
LINE 1: ... = 'product' AND "catalog_taggeditem"."object_id" = '903cda0...
^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.