ForeignKeyRawIdWidgetの使い方
質問
ForeignKeyRawIdWidgetを拡張したいので、raw_id_fieldsを設定せずに使えるようにしたいです。
以下のようにすると、エラーは発生しませんが、効果はありません。
# models.py
class Product(models.Model):
...
class GroupProduct(Product):
...
products = models.ManyToManyField(Product, related_name="%(class)s_related")
# forms.py
class GroupProductAdminForm(forms.ModelForm):
class Meta:
model = GroupProduct
widgets = {
'products': ForeignKeyRawIdWidget(GroupProduct._meta.get_field('products').rel),
}
これによりエラーが発生します: 初期化() は少なくとも 2 つの非キーワード引数を取ります (1 つは指定されます)
products = forms.ModelMultipleChoiceField(widget=ForeignKeyRawIdWidget(GroupProduct._meta.get_field('products').rel))
それ、どうやったら出来るの?
ありがとう
解決 2
ManyToManyRawIdWidgetを使用する代わりにForeignKeyRawIdWidgetは私のためにそれを修正します。
他のヒント
あなたはModelMultipleChoiceFieldに関連したモデルクエリセットを渡すのを忘れています。
products = forms.ModelMultipleChoiceField(Product.objects, widget=ForeignKeyRawIdWidget(GroupProduct._meta.get_field('products').rel))
所属していません StackOverflow