【问题标题】:django-taggit obtain tags string from formdjango-taggit 从表单中获取标签字符串
【发布时间】:2018-03-28 05:15:33
【问题描述】:

我尝试使用 django-taggit 作为标签模型。

模型.py

class Product(models.Model):
    product_no = models.IntegerField(primary_key=True)
    ... 
    tags = TaggableManager(blank=True)

views.py

def action(request):
    product = Product()

    user = User.objects.get(id=request.user.id)
    product.seller_username = user
    ...

    product.save()

    tag_list = taggit.utils._parse_tags(request.POST['tags'])
    product.tags.add(*tag_list)

当我调用方法 product.tags.add() 时,我收到一个错误提示

产品对象需要有一个主键值才能访问 他们的标签

我发现许多解决方案都告诉我将 product.save() 放在 product.tags.add() 之前,以使 pk 在访问多对多字段之前可用。 我试过了,还是报错。

注意:save() 方法可以正常工作。它在产品列表中创建新对象,并且可以在管理界面中看到。

【问题讨论】:

  • 您是否在保存之前为product.product_no 设置了一个值?
  • 我没有设置,但是因为是pk字段,应该是通过save()方法自动设置的吧。

标签: python django django-views django-taggit


【解决方案1】:

看来我得改了

product_no = models.IntegerField(primary_key=True)

product_no = models.AutoField(primary_key=True)

它已经修复了。

【讨论】:

    猜你喜欢
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 2017-02-13
    • 2017-10-14
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多