2017-10-16 88 views
0

我試圖使用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()方法正常工作。它在產品列表中創建新對象,並可以在管理界面中查看。

+0

您是否在保存之前設置了'product.product_no'的值? – solarissmoke

+0

我沒有設置它,但是因爲它是pk字段,它應該通過save()方法自動設置。 –

回答

0

這似乎是我必須要改變

product_no = models.IntegerField(primary_key=True) 

product_no = models.AutoField(primary_key=True) 

和它的固定。