سؤال

أرغب في توسيع ForeignKeyRawidWidget ، لذا أريد أن أكون قادرًا على استخدامه دون تعيين RAW_ID_FIELDS.

مع follwoing ، لا أحصل على خطأ ولكني لا أرى أي تأثير:

# 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