Pregunta

Quiero extender ForeignKeyRawIdWidget así que quiero ser capaz de utilizarlo sin establecer raw_id_fields.

Con la follwoing no consigo un error pero no veo ningún efecto:

# 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),
        }

Esto me da un error: init () toma al menos 2 argumentos no de palabras clave (1 dada)

products = forms.ModelMultipleChoiceField(widget=ForeignKeyRawIdWidget(GroupProduct._meta.get_field('products').rel))

¿Cómo se hace eso?

Gracias

¿Fue útil?

Solución 2

El uso de ManyToManyRawIdWidget en lugar de ForeignKeyRawIdWidget fijado por mí.

Otros consejos

Se le olvidó pasar el relacionado Modelo-QuerySet a ModelMultipleChoiceField.

products = forms.ModelMultipleChoiceField(Product.objects, widget=ForeignKeyRawIdWidget(GroupProduct._meta.get_field('products').rel))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top