django-taggit从表单

时间:2017-10-16 16:00:17

标签: python django django-views django-taggit

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

model.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.tags.add()之前放置product.save(),以便在访问多对多字段之前使pk可用。 我试过它仍然是错误。

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

1 个答案:

答案 0 :(得分:0)

似乎我必须改变

product_no = models.IntegerField(primary_key=True)

product_no = models.AutoField(primary_key=True)

并且已修复。