как использовать 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