class VLANFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm): model = VLAN field_order = [ 'q', 'region', 'site', 'group_id', 'status', 'role', 'tenant_group', 'tenant' ] q = forms.CharField(required=False, label='Search') region = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( value_field="slug", filter_for={ 'site': 'region', 'group_id': 'region' })) site = DynamicModelMultipleChoiceField(queryset=Site.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( value_field="slug", null_option=True, )) group_id = DynamicModelMultipleChoiceField( queryset=VLANGroup.objects.all(), required=False, label='VLAN group', widget=APISelectMultiple(null_option=True, )) status = forms.MultipleChoiceField(choices=VLANStatusChoices, required=False, widget=StaticSelect2Multiple()) role = DynamicModelMultipleChoiceField(queryset=Role.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( value_field="slug", null_option=True, )) tag = TagFilterField(model)
class VMInterfaceFilterForm(forms.Form): model = VMInterface cluster_id = DynamicModelMultipleChoiceField( queryset=Cluster.objects.all(), required=False, label='Cluster' ) virtual_machine_id = DynamicModelMultipleChoiceField( queryset=VirtualMachine.objects.all(), required=False, label='Virtual machine', query_params={ 'cluster_id': '$cluster_id' } ) enabled = forms.NullBooleanField( required=False, widget=StaticSelect2( choices=BOOLEAN_WITH_BLANK_CHOICES ) ) tag = TagFilterField(model)
class TenancyFilterForm(forms.Form): tenant_group = DynamicModelMultipleChoiceField( queryset=TenantGroup.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( value_field="slug", null_option=True, filter_for={ 'tenant': 'group' } ) ) tenant = DynamicModelMultipleChoiceField( queryset=Tenant.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( value_field="slug", null_option=True, ) )
class ConfigContextFilterForm(BootstrapMixin, forms.Form): q = forms.CharField(required=False, label='Search') region = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( value_field="slug", )) site = DynamicModelMultipleChoiceField(queryset=Site.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( value_field="slug", )) role = DynamicModelMultipleChoiceField(queryset=DeviceRole.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( value_field="slug", )) platform = DynamicModelMultipleChoiceField(queryset=Platform.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( value_field="slug", )) cluster_group = DynamicModelMultipleChoiceField( queryset=ClusterGroup.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple(value_field="slug", )) cluster_id = DynamicModelMultipleChoiceField( queryset=Cluster.objects.all(), required=False, label='Cluster') tenant_group = DynamicModelMultipleChoiceField( queryset=TenantGroup.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple(value_field="slug", )) tenant = DynamicModelMultipleChoiceField(queryset=Tenant.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( value_field="slug", )) tag = DynamicModelMultipleChoiceField(queryset=Tag.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( value_field="slug", ))
class TenantFilterForm(BootstrapMixin, CustomFieldFilterForm): model = Tenant q = forms.CharField(required=False, label='Search') group = DynamicModelMultipleChoiceField( queryset=TenantGroup.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( api_url="/api/tenancy/tenant-groups/", value_field="slug", null_option=True, )) tag = TagFilterField(model)
class VirtualChassisFilterForm(TenancyFilterForm, CustomFieldModelFilterForm): model = VirtualChassis field_groups = [ ['q', 'tag'], ['region_id', 'site_group_id', 'site_id'], ['tenant_group_id', 'tenant_id'], ] region_id = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), required=False, label=_('Region')) site_group_id = DynamicModelMultipleChoiceField( queryset=SiteGroup.objects.all(), required=False, label=_('Site group')) site_id = DynamicModelMultipleChoiceField(queryset=Site.objects.all(), required=False, query_params={ 'region_id': '$region_id', 'group_id': '$site_group_id', }, label=_('Site')) tag = TagFilterField(model)
class AggregateFilterForm(TenancyFilterForm, CustomFieldModelFilterForm): model = Aggregate field_groups = [['q', 'tag'], ['family', 'rir_id'], ['tenant_group_id', 'tenant_id']] family = forms.ChoiceField( required=False, choices=add_blank_choice(IPAddressFamilyChoices), label=_('Address family'), widget=StaticSelect()) rir_id = DynamicModelMultipleChoiceField(queryset=RIR.objects.all(), required=False, label=_('RIR')) tag = TagFilterField(model)
class RackFilterForm(TenancyFilterForm, CustomFieldModelFilterForm): model = Rack field_groups = [ ['q', 'tag'], ['region_id', 'site_id', 'location_id'], ['status', 'role_id'], ['type', 'width', 'serial', 'asset_tag'], ['tenant_group_id', 'tenant_id'], ] region_id = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), required=False, label=_('Region')) site_id = DynamicModelMultipleChoiceField( queryset=Site.objects.all(), required=False, query_params={'region_id': '$region_id'}, label=_('Site')) location_id = DynamicModelMultipleChoiceField( queryset=Location.objects.all(), required=False, null_option='None', query_params={'site_id': '$site_id'}, label=_('Location')) status = forms.MultipleChoiceField(choices=RackStatusChoices, required=False, widget=StaticSelectMultiple()) type = forms.MultipleChoiceField(choices=RackTypeChoices, required=False, widget=StaticSelectMultiple()) width = forms.MultipleChoiceField(choices=RackWidthChoices, required=False, widget=StaticSelectMultiple()) role_id = DynamicModelMultipleChoiceField(queryset=RackRole.objects.all(), required=False, null_option='None', label=_('Role')) serial = forms.CharField(required=False) asset_tag = forms.CharField(required=False) tag = TagFilterField(model)
class ClusterGroupForm(CustomFieldModelForm): slug = SlugField() tags = DynamicModelMultipleChoiceField(queryset=Tag.objects.all(), required=False) class Meta: model = ClusterGroup fields = ( 'name', 'slug', 'description', 'tags', )
class ProviderFilterForm(BootstrapMixin, CustomFieldModelFilterForm): model = Provider field_groups = [ ['q', 'tag'], ['region_id', 'site_group_id', 'site_id'], ['asn'], ] q = forms.CharField( required=False, widget=forms.TextInput(attrs={'placeholder': _('All Fields')}), label=_('Search') ) region_id = DynamicModelMultipleChoiceField( queryset=Region.objects.all(), required=False, label=_('Region'), fetch_trigger='open' ) site_group_id = DynamicModelMultipleChoiceField( queryset=SiteGroup.objects.all(), required=False, label=_('Site group'), fetch_trigger='open' ) site_id = DynamicModelMultipleChoiceField( queryset=Site.objects.all(), required=False, query_params={ 'region_id': '$region_id', 'site_group_id': '$site_group_id', }, label=_('Site'), fetch_trigger='open' ) asn = forms.IntegerField( required=False, label=_('ASN') ) tag = TagFilterField(model)
class RackReservationForm(TenancyForm, CustomFieldModelForm): region = DynamicModelChoiceField(queryset=Region.objects.all(), required=False, initial_params={'sites': '$site'}) site_group = DynamicModelChoiceField(queryset=SiteGroup.objects.all(), required=False, initial_params={'sites': '$site'}) site = DynamicModelChoiceField(queryset=Site.objects.all(), required=False, query_params={ 'region_id': '$region', 'group_id': '$site_group', }) location = DynamicModelChoiceField(queryset=Location.objects.all(), required=False, query_params={'site_id': '$site'}) rack = DynamicModelChoiceField(queryset=Rack.objects.all(), query_params={ 'site_id': '$site', 'location_id': '$location', }) units = NumericArrayField( base_field=forms.IntegerField(), help_text= "Comma-separated list of numeric unit IDs. A range may be specified using a hyphen." ) user = forms.ModelChoiceField(queryset=User.objects.order_by('username'), widget=StaticSelect()) tags = DynamicModelMultipleChoiceField(queryset=Tag.objects.all(), required=False) class Meta: model = RackReservation fields = [ 'region', 'site_group', 'site', 'location', 'rack', 'units', 'user', 'tenant_group', 'tenant', 'description', 'tags', ] fieldsets = ( ('Reservation', ('region', 'site', 'location', 'rack', 'units', 'user', 'description', 'tags')), ('Tenancy', ('tenant_group', 'tenant')), )
class ConnectCableToCircuitTerminationForm(BootstrapMixin, CustomFieldModelForm): termination_b_provider = DynamicModelChoiceField( queryset=Provider.objects.all(), label='Provider', required=False) termination_b_region = DynamicModelChoiceField( queryset=Region.objects.all(), label='Region', required=False) termination_b_site_group = DynamicModelChoiceField( queryset=SiteGroup.objects.all(), label='Site group', required=False) termination_b_site = DynamicModelChoiceField( queryset=Site.objects.all(), label='Site', required=False, query_params={ 'region_id': '$termination_b_region', 'group_id': '$termination_b_site_group', }) termination_b_circuit = DynamicModelChoiceField( queryset=Circuit.objects.all(), label='Circuit', query_params={ 'provider_id': '$termination_b_provider', 'site_id': '$termination_b_site', }) termination_b_id = DynamicModelChoiceField( queryset=CircuitTermination.objects.all(), label='Side', disabled_indicator='_occupied', query_params={'circuit_id': '$termination_b_circuit'}) tags = DynamicModelMultipleChoiceField(queryset=Tag.objects.all(), required=False) class Meta: model = Cable fields = [ 'termination_b_provider', 'termination_b_region', 'termination_b_site', 'termination_b_circuit', 'termination_b_id', 'type', 'status', 'label', 'color', 'length', 'length_unit', 'tags', ] def clean_termination_b_id(self): # Return the PK rather than the object return getattr(self.cleaned_data['termination_b_id'], 'pk', None)
class ConfigContextForm(BootstrapMixin, forms.ModelForm): regions = TreeNodeMultipleChoiceField( queryset=Region.objects.all(), required=False, widget=StaticSelect2Multiple() ) sites = DynamicModelMultipleChoiceField( queryset=Site.objects.all(), required=False ) roles = DynamicModelMultipleChoiceField( queryset=DeviceRole.objects.all(), required=False ) platforms = DynamicModelMultipleChoiceField( queryset=Platform.objects.all(), required=False ) cluster_groups = DynamicModelMultipleChoiceField( queryset=ClusterGroup.objects.all(), required=False ) clusters = DynamicModelMultipleChoiceField( queryset=Cluster.objects.all(), required=False ) tenant_groups = DynamicModelMultipleChoiceField( queryset=TenantGroup.objects.all(), required=False ) tenants = DynamicModelMultipleChoiceField( queryset=Tenant.objects.all(), required=False ) tags = DynamicModelMultipleChoiceField( queryset=Tag.objects.all(), required=False ) data = JSONField( label='' ) class Meta: model = ConfigContext fields = ( 'name', 'weight', 'description', 'is_active', 'regions', 'sites', 'roles', 'platforms', 'cluster_groups', 'clusters', 'tenant_groups', 'tenants', 'tags', 'data', )
class VirtualMachineFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm): model = VirtualMachine field_order = [ 'q', 'cluster_group', 'cluster_type', 'cluster_id', 'status', 'role', 'region', 'site', 'tenant_group', 'tenant', 'platform', 'mac_address', ] q = forms.CharField(required=False, label='Search') cluster_group = DynamicModelMultipleChoiceField( queryset=ClusterGroup.objects.all(), to_field_name='slug', required=False, null_option='None') cluster_type = DynamicModelMultipleChoiceField( queryset=ClusterType.objects.all(), to_field_name='slug', required=False, null_option='None') cluster_id = DynamicModelMultipleChoiceField( queryset=Cluster.objects.all(), required=False, label='Cluster') region = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), to_field_name='slug', required=False) site = DynamicModelMultipleChoiceField(queryset=Site.objects.all(), to_field_name='slug', required=False, null_option='None', query_params={'region': '$region'}) role = DynamicModelMultipleChoiceField( queryset=DeviceRole.objects.filter(vm_role=True), to_field_name='slug', required=False, null_option='None', query_params={'vm_role': "True"}) status = forms.MultipleChoiceField(choices=VirtualMachineStatusChoices, required=False, widget=StaticSelect2Multiple()) platform = DynamicModelMultipleChoiceField(queryset=Platform.objects.all(), to_field_name='slug', required=False, null_option='None') mac_address = forms.CharField(required=False, label='MAC address') tag = TagFilterField(model)
class PowerPanelFilterForm(CustomFieldModelFilterForm): model = PowerPanel field_groups = (('q', 'tag'), ('region_id', 'site_group_id', 'site_id', 'location_id')) region_id = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), required=False, label='Region') site_group_id = DynamicModelMultipleChoiceField( queryset=SiteGroup.objects.all(), required=False, label='Site group') site_id = DynamicModelMultipleChoiceField(queryset=Site.objects.all(), required=False, query_params={ 'region_id': '$region_id', 'group_id': '$site_group_id', }, label='Site') location_id = DynamicModelMultipleChoiceField( queryset=Location.objects.all(), required=False, null_option='None', query_params={'site_id': '$site_id'}, label='Location') tag = TagFilterField(model)
class AggregateFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm): model = Aggregate q = forms.CharField(required=False, label='Search') family = forms.ChoiceField( required=False, choices=add_blank_choice(IPAddressFamilyChoices), label='Address family', widget=StaticSelect2()) rir = DynamicModelMultipleChoiceField(queryset=RIR.objects.all(), to_field_name='slug', required=False, label='RIR') tag = TagFilterField(model)
class BGPPeerGroupForm(NetBoxModelForm): import_policies = DynamicModelMultipleChoiceField( queryset=RoutingPolicy.objects.all(), required=False, widget=APISelectMultiple( api_url='/api/plugins/bgp/routing-policy/' ) ) export_policies = DynamicModelMultipleChoiceField( queryset=RoutingPolicy.objects.all(), required=False, widget=APISelectMultiple( api_url='/api/plugins/bgp/routing-policy/' ) ) tags = DynamicModelMultipleChoiceField( queryset=Tag.objects.all(), required=False ) class Meta: model = BGPPeerGroup fields = ['name', 'description', 'import_policies', 'export_policies', 'tags']
class RouteTargetFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): model = RouteTarget field_groups = [ ['q', 'tag'], ['importing_vrf_id', 'exporting_vrf_id'], ['tenant_group_id', 'tenant_id'], ] q = forms.CharField( required=False, widget=forms.TextInput(attrs={'placeholder': _('All Fields')}), label=_('Search')) importing_vrf_id = DynamicModelMultipleChoiceField( queryset=VRF.objects.all(), required=False, label=_('Imported by VRF'), fetch_trigger='open') exporting_vrf_id = DynamicModelMultipleChoiceField( queryset=VRF.objects.all(), required=False, label=_('Exported by VRF'), fetch_trigger='open') tag = TagFilterField(model)
class RackRoleForm(CustomFieldModelForm): slug = SlugField() tags = DynamicModelMultipleChoiceField(queryset=Tag.objects.all(), required=False) class Meta: model = RackRole fields = [ 'name', 'slug', 'color', 'description', 'tags', ]
class ObjectChangeFilterForm(BootstrapMixin, forms.Form): model = ObjectChange q = forms.CharField(required=False, label=_('Search')) time_after = forms.DateTimeField(required=False, label=_('After'), widget=DateTimePicker()) time_before = forms.DateTimeField(required=False, label=_('Before'), widget=DateTimePicker()) action = forms.ChoiceField( choices=add_blank_choice(ObjectChangeActionChoices), required=False, widget=StaticSelect2()) user_id = DynamicModelMultipleChoiceField( queryset=User.objects.all(), required=False, label=_('User'), widget=APISelectMultiple(api_url='/api/users/users/', )) changed_object_type_id = DynamicModelMultipleChoiceField( queryset=ContentType.objects.all(), required=False, label=_('Object Type'), widget=APISelectMultiple(api_url='/api/extras/content-types/', ))
class VLANGroupFilterForm(BootstrapMixin, forms.Form): region = DynamicModelMultipleChoiceField( queryset=Region.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( api_url="/api/dcim/regions/", value_field="slug", filter_for={ 'site': 'region', } ) ) site = DynamicModelMultipleChoiceField( queryset=Site.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( api_url="/api/dcim/sites/", value_field="slug", null_option=True, ) )
class RegionFilterForm(BootstrapMixin, CustomFieldModelFilterForm): model = Region field_groups = [ ['q'], ['parent_id'], ] q = forms.CharField( required=False, widget=forms.TextInput(attrs={'placeholder': _('All Fields')}), label=_('Search')) parent_id = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), required=False, label=_('Parent region'), fetch_trigger='open')
class JournalEntryFilterForm(BootstrapMixin, forms.Form): model = JournalEntry q = forms.CharField( required=False, label=_('Search') ) created_after = forms.DateTimeField( required=False, label=_('After'), widget=DateTimePicker() ) created_before = forms.DateTimeField( required=False, label=_('Before'), widget=DateTimePicker() ) created_by_id = DynamicModelMultipleChoiceField( queryset=User.objects.all(), required=False, label=_('User'), widget=APISelectMultiple( api_url='/api/users/users/', ) ) assigned_object_type_id = DynamicModelMultipleChoiceField( queryset=ContentType.objects.all(), required=False, label=_('Object Type'), widget=APISelectMultiple( api_url='/api/extras/content-types/', ) ) kind = forms.ChoiceField( choices=add_blank_choice(JournalEntryKindChoices), required=False, widget=StaticSelect2() )
class DeviceTypeFilterForm(CustomFieldModelFilterForm): model = DeviceType field_groups = [ ['q', 'tag'], ['manufacturer_id', 'subdevice_role', 'airflow'], [ 'console_ports', 'console_server_ports', 'power_ports', 'power_outlets', 'interfaces', 'pass_through_ports' ], ] manufacturer_id = DynamicModelMultipleChoiceField( queryset=Manufacturer.objects.all(), required=False, label='Manufacturer') subdevice_role = forms.MultipleChoiceField( label='subdevice_role', choices=add_blank_choice(SubdeviceRoleChoices), required=False, widget=StaticSelectMultiple()) airflow = forms.MultipleChoiceField( label='airflow', choices=add_blank_choice(DeviceAirflowChoices), required=False, widget=StaticSelectMultiple()) console_ports = forms.NullBooleanField( required=False, label='Has console ports', widget=StaticSelect(choices=BOOLEAN_WITH_BLANK_CHOICES)) console_server_ports = forms.NullBooleanField( required=False, label='Has console server ports', widget=StaticSelect(choices=BOOLEAN_WITH_BLANK_CHOICES)) power_ports = forms.NullBooleanField( required=False, label='Has power ports', widget=StaticSelect(choices=BOOLEAN_WITH_BLANK_CHOICES)) power_outlets = forms.NullBooleanField( required=False, label='Has power outlets', widget=StaticSelect(choices=BOOLEAN_WITH_BLANK_CHOICES)) interfaces = forms.NullBooleanField( required=False, label='Has interfaces', widget=StaticSelect(choices=BOOLEAN_WITH_BLANK_CHOICES)) pass_through_ports = forms.NullBooleanField( required=False, label='Has pass-through ports', widget=StaticSelect(choices=BOOLEAN_WITH_BLANK_CHOICES)) tag = TagFilterField(model)
class IPAddressFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm): model = IPAddress field_order = [ 'q', 'parent', 'family', 'mask_length', 'vrf_id', 'present_in_vrf_id', 'status', 'role', 'assigned_to_interface', 'tenant_group', 'tenant', ] q = forms.CharField(required=False, label='Search') parent = forms.CharField(required=False, widget=forms.TextInput(attrs={ 'placeholder': 'Prefix', }), label='Parent Prefix') family = forms.ChoiceField( required=False, choices=add_blank_choice(IPAddressFamilyChoices), label='Address family', widget=StaticSelect2()) mask_length = forms.ChoiceField(required=False, choices=IPADDRESS_MASK_LENGTH_CHOICES, label='Mask length', widget=StaticSelect2()) vrf_id = DynamicModelMultipleChoiceField(queryset=VRF.objects.all(), required=False, label='Assigned VRF', null_option='Global') present_in_vrf_id = DynamicModelChoiceField(queryset=VRF.objects.all(), required=False, label='Present in VRF') status = forms.MultipleChoiceField(choices=IPAddressStatusChoices, required=False, widget=StaticSelect2Multiple()) role = forms.MultipleChoiceField(choices=IPAddressRoleChoices, required=False, widget=StaticSelect2Multiple()) assigned_to_interface = forms.NullBooleanField( required=False, label='Assigned to an interface', widget=StaticSelect2(choices=BOOLEAN_WITH_BLANK_CHOICES)) tag = TagFilterField(model)
class CircuitFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldModelFilterForm): model = Circuit field_groups = [ ['q', 'tag'], ['provider_id', 'provider_network_id'], ['type_id', 'status', 'commit_rate'], ['region_id', 'site_group_id', 'site_id'], ['tenant_group_id', 'tenant_id'], ] q = forms.CharField( required=False, widget=forms.TextInput(attrs={'placeholder': _('All Fields')}), label=_('Search')) type_id = DynamicModelMultipleChoiceField( queryset=CircuitType.objects.all(), required=False, label=_('Type'), fetch_trigger='open') provider_id = DynamicModelMultipleChoiceField( queryset=Provider.objects.all(), required=False, label=_('Provider'), fetch_trigger='open') provider_network_id = DynamicModelMultipleChoiceField( queryset=ProviderNetwork.objects.all(), required=False, query_params={'provider_id': '$provider_id'}, label=_('Provider network'), fetch_trigger='open') status = forms.MultipleChoiceField(choices=CircuitStatusChoices, required=False, widget=StaticSelectMultiple()) region_id = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), required=False, label=_('Region'), fetch_trigger='open') site_group_id = DynamicModelMultipleChoiceField( queryset=SiteGroup.objects.all(), required=False, label=_('Site group'), fetch_trigger='open') site_id = DynamicModelMultipleChoiceField(queryset=Site.objects.all(), required=False, query_params={ 'region_id': '$region_id', 'site_group_id': '$site_group_id', }, label=_('Site'), fetch_trigger='open') commit_rate = forms.IntegerField(required=False, min_value=0, label=_('Commit rate (Kbps)')) tag = TagFilterField(model)
class SecretFilterForm(BootstrapMixin, CustomFieldFilterForm): model = Secret q = forms.CharField( required=False, label='Search' ) role = DynamicModelMultipleChoiceField( queryset=SecretRole.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( value_field="slug", ) ) tag = TagFilterField(model)
class ClusterFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm): model = Cluster field_order = [ 'q', 'type', 'region', 'site', 'group', 'tenant_group', 'tenant' ] q = forms.CharField(required=False, label='Search') type = DynamicModelMultipleChoiceField(queryset=ClusterType.objects.all(), to_field_name='slug', required=False) region = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), to_field_name='slug', required=False) site = DynamicModelMultipleChoiceField(queryset=Site.objects.all(), to_field_name='slug', required=False, null_option='None', query_params={'region': '$region'}) group = DynamicModelMultipleChoiceField( queryset=ClusterGroup.objects.all(), to_field_name='slug', required=False, null_option='None') tag = TagFilterField(model)
class CommunityForm(BootstrapMixin, forms.ModelForm): tags = DynamicModelMultipleChoiceField(queryset=Tag.objects.all(), required=False) tenant = DynamicModelChoiceField(queryset=Tenant.objects.all(), required=False) class Meta: model = Community fields = [ 'value', 'description', 'status', 'tenant', 'tags', ]
class ComponentCreateForm(CustomFieldsMixin, ComponentForm): """ Base form for the creation of device components (models subclassed from ComponentModel). """ device = DynamicModelChoiceField( queryset=Device.objects.all() ) description = forms.CharField( max_length=200, required=False ) tags = DynamicModelMultipleChoiceField( queryset=Tag.objects.all(), required=False )