質問

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))
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top