Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ProductRegexpFormset(BaseInlineFormSet):
- """
- Prefilled formset
- """
- def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
- data = {item.shop_id: item.shop for item in self.queryset}
- self.shops = Shop.objects.exclude(id__in=data.keys())
- values = list(data.values())
- values.extend(self.shops)
- self.initial = [{'shop': shop} for shop in values]
- class ProductRegexpInline(admin.StackedInline):
- """
- Prefilled inilines with disabled dropdown
- """
- formset = ProductRegexpFormset
- model = ProductRegexp
- fields = ('shop', ('name_regexp_list', 'info'))
- def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
- self.shop_count = Shop.objects.count()
- def get_min_num(self, request, obj=None, **kwargs):
- return self.shop_count
- def get_max_num(self, request, obj=None, **kwargs):
- return self.shop_count
- def get_extra(self, request, obj=None, **kwargs):
- return self.shop_count
- def formfield_for_dbfield(self, db_field, **kwargs):
- if db_field.name == 'shop':
- field = db_field.formfield()
- field.widget.attrs['style'] = 'pointer-events: none;'
- return field
- return super().formfield_for_dbfield(db_field, **kwargs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement