私はDjangoモデルを持っています
class Category(MPTTModel):
name = models.CharField(max_length=50, unique=True)
parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
def __unicode__(self):
return self.name
class MPTTMeta:
order_insertion_by = ['name']
およびモデルフォーム
class UploadForm(ModelForm):
file = forms.FileField()
category = mpttform.TreeNodeMultipleChoiceField(queryset=Category.objects.filter(lft=F('rght')-1))
class Meta:
model = UploadedFile
ただし、(モデルで定義されているように) Category インスタンスであるはずの UploadForm のこのカテゴリ フィールドに問題がありますが、クエリセットは、すべてのリーフ カテゴリを表示するためにテンプレートで使用する Category オブジェクトのリストを返します。フォームのカテゴリを選択して送信すると、このエラーが発生します (cat5 を選択した場合) '[Category: cat5] を割り当てることができません: "UploadedFile.category" は "Category" インスタンスである必要があります。このエラーが発生する理由は理解していますが、save() メソッドのために ModelForm を使用したいのですが、これを修正する方法がわかりません。何か提案はありますか?