2

django-taggit を使用しようとしています (を参照)。これは私のコードにあるものです:

models.py

class MyData(models.Model):
    title = models.CharField(blank=True, max_length=50)
    .....
    tags = TaggableManager()

ビュー.py

g = MyData(title=f_title)   
g.tags.add( "mytag" )
g.save()

タグとデータを保存しようとすると、何らかの理由で次のエラーが発生します。

タグにアクセスするには、MyData オブジェクトに主キーの値が必要です。

何か案は?ありがとうございました!

4

3 に答える 3

6

MyData.objects.create(title=f_title)DBに保存し、IDを取得してアクセスするために使用しますtags

g = MyData.objects.create(title=f_title)  
g.tags.add( "mytag" )
g.save()
于 2011-04-05T02:27:39.300 に答える
2

順序を変更します。最初に保存します-主キーを割り当てます-次にタグをいじります。

于 2011-04-05T02:25:50.970 に答える
2

エラーが示すように、タグを追加する前に、MyDataオブジェクトに主キーが必要です。これは、タグが多対多の関係で保存されており、別のテーブルにリンクできるようにIDが必要なためです。簡単な解決策は次のとおりです。

g = MyData(title=f_title)   
g.save()
g.tags.add( "mytag" )
g.save()
于 2011-04-05T02:27:07.173 に答える