Domanda

voglio estendere ForeignKeyRawIdWidget quindi voglio essere in grado di utilizzarlo senza impostare raw_id_fields.

Con la follwoing non ottengo un errore, ma non vedo alcun effetto:

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

Questo mi dà un errore: init () prende almeno 2 argomenti non di parole chiave (1 dato)

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

Come faccio a farlo?

Grazie

È stato utile?

Soluzione 2

Utilizzando ManyToManyRawIdWidget invece di ForeignKeyRawIdWidget fisso per me.

Altri suggerimenti

Hai dimenticato di passare il relativo modello-QuerySet a ModelMultipleChoiceField.

products = forms.ModelMultipleChoiceField(Product.objects, widget=ForeignKeyRawIdWidget(GroupProduct._meta.get_field('products').rel))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top