私は現在、既存のデータベースの上に新しいタグ付けシステムを実装しています。Djangoモデル;保存時にManyToManyフィールドに余分な項目を保存する
現在のタグ付けシステムではManyToManyフィールドが使用されますが、クライアントはコンマで区切られた入力フィールド(CharField)を使用します。
私は、現在のアーキテクチャを危険にさらすことなく、新しいコンマ区切りのフィールドを有効にすることですが、これまでのManyToManyアーキテクチャとしてタグを書き留めておくことが最良の方法を考え出しました。
しかし、私はそれをやろうとしますが、タグはデータベースタグモデルに保存されますが、適用するエントリには保存されません。
シンプルランダウン:
def save(self, *args, **kwargs):
currTags = self.placeHolderTags.split(",")
for tag in currTags:
dbtag, created = Tag.objects.get_or_create(name=tag)
self.tags.add(dbtag)
super(BeeldBankEntry, self).save(*args, **kwargs)
さらにモデルの背景:
tags = models.ManyToManyField(Tag, verbose_name='Tags', blank=True)
placeHolderTags = models.CharField(max_length=400, verbose_name='Tags2', blank=True)
get_or_create()はクエリーセットを返します。get_or_create()[0]を試してみましたか? – crodjer
get_or_createは無限ループを引き起こす(オブジェクト、created_flag) –