【发布时间】: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