2017-10-16 8 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.AutoField(primary_key=True) 

product_no = models.IntegerField(primary_key=True) 

を変更する必要があり、それが固定だと思われます。

関連する問題