content: from django import forms
  from django.utils.translation import gettext_lazy as _
  
  from utilities.forms import form_from_model
  from utilities.forms.fields import ExpandableNameField
  from virtualization.models import VirtualDisk, VMInterface, VirtualMachine
  
  __all__ = (
      'VirtualDiskBulkCreateForm',
      'VMInterfaceBulkCreateForm',
  )
  
  
  class VirtualMachineBulkAddComponentForm(forms.Form):
      pk = forms.ModelMultipleChoiceField(
          queryset=VirtualMachine.objects.all(),
          widget=forms.MultipleHiddenInput()
      )
      name = ExpandableNameField(
          label=_('Name')
      )
  
      def clean_tags(self):
          # Because we're feeding TagField data (on the bulk edit form) to another TagField (on the model form), we
          # must first convert the list of tags to a string.
          return ','.join(self.cleaned_data.get('tags'))
  
  
  class VMInterfaceBulkCreateForm(
      form_from_model(VMInterface, ['enabled', 'mtu', 'description', 'tags']),
      VirtualMachineBulkAddComponentForm
  ):
      replication_fields = ('name',)
  
  
  class VirtualDiskBulkCreateForm(
      form_from_model(VirtualDisk, ['size', 'description', 'tags']),
      VirtualMachineBulkAddComponentForm
  ):
      replication_fields = ('name',)
  