Frage

Ich möchte ForeignKeyRawIdWidget verlängern, damit ich es in der Lage sein zu verwenden, ohne raw_id_fields Einstellung.

Mit dem follwoing ich nicht einen Fehler, aber ich sehe keine Wirkung:

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

Das gibt mir eine Fehlermeldung: init () nimmt mindestens zwei Nicht-Schlüsselwort-Argument (1 angegeben)

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

Wie kann ich das tun?

Danke

War es hilfreich?

Lösung 2

Mit ManyToManyRawIdWidget statt ForeignKeyRawIdWidget regelte es für mich.

Andere Tipps

Sie haben vergessen, die im Zusammenhang Model QuerySet zu ModelMultipleChoiceField passieren.

products = forms.ModelMultipleChoiceField(Product.objects, widget=ForeignKeyRawIdWidget(GroupProduct._meta.get_field('products').rel))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top