Просмотр исходного кода

CSV Upload as second field in existing form

Alyssa Bigley 4 лет назад
Родитель
Сommit
e1fe3ca14a
1 измененных файлов с 9 добавлено и 2 удалено
  1. 9 2
      netbox/netbox/views/generic.py

+ 9 - 2
netbox/netbox/views/generic.py

@@ -7,7 +7,7 @@ from django.contrib.contenttypes.models import ContentType
 from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist, ValidationError
 from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist, ValidationError
 from django.db import transaction, IntegrityError
 from django.db import transaction, IntegrityError
 from django.db.models import ManyToManyField, ProtectedError
 from django.db.models import ManyToManyField, ProtectedError
-from django.forms import Form, ModelMultipleChoiceField, MultipleHiddenInput, Textarea
+from django.forms import Form, ModelMultipleChoiceField, MultipleHiddenInput, Textarea, FileField, CharField
 from django.http import HttpResponse
 from django.http import HttpResponse
 from django.shortcuts import get_object_or_404, redirect, render
 from django.shortcuts import get_object_or_404, redirect, render
 from django.utils.html import escape
 from django.utils.html import escape
@@ -665,7 +665,10 @@ class BulkImportView(GetReturnURLMixin, ObjectPermissionRequiredMixin, View):
                 from_form=self.model_form,
                 from_form=self.model_form,
                 widget=Textarea(attrs=self.widget_attrs)
                 widget=Textarea(attrs=self.widget_attrs)
             )
             )
-
+            Upload_CSV = FileField(
+                required=False
+            )
+        # this is where the import form is created -- add csv upload here or create new form?
         return ImportForm(*args, **kwargs)
         return ImportForm(*args, **kwargs)
 
 
     def _save_obj(self, obj_form, request):
     def _save_obj(self, obj_form, request):
@@ -690,6 +693,7 @@ class BulkImportView(GetReturnURLMixin, ObjectPermissionRequiredMixin, View):
         logger = logging.getLogger('netbox.views.BulkImportView')
         logger = logging.getLogger('netbox.views.BulkImportView')
         new_objs = []
         new_objs = []
         form = self._import_form(request.POST)
         form = self._import_form(request.POST)
+        # this is where the csv data is handled
 
 
         if form.is_valid():
         if form.is_valid():
             logger.debug("Form validation was successful")
             logger.debug("Form validation was successful")
@@ -697,6 +701,9 @@ class BulkImportView(GetReturnURLMixin, ObjectPermissionRequiredMixin, View):
             try:
             try:
                 # Iterate through CSV data and bind each row to a new model form instance.
                 # Iterate through CSV data and bind each row to a new model form instance.
                 with transaction.atomic():
                 with transaction.atomic():
+                    # some prints trying to figure out how the form works
+                    print(type(form["Upload_CSV"]))
+                    print(form["Upload_CSV"].data)
                     headers, records = form.cleaned_data['csv']
                     headers, records = form.cleaned_data['csv']
                     for row, data in enumerate(records, start=1):
                     for row, data in enumerate(records, start=1):
                         obj_form = self.model_form(data, headers=headers)
                         obj_form = self.model_form(data, headers=headers)