Импорт через Pandas CSV в Django модель manytomanyfield
Абсолютный новичок в Django. Решил на работе разработать небольшое POC-приложение, но никак не могу разобраться с импортом csv-данных через Pandas в мою Django-модель manytomanyField. Все остальное работает, за исключением m2m-поля.
Вот часть моей модели:
class Service_Interval(models.Model):
interval_name = models.CharField(null=True, max_length=200)
class Task(models.Model):
service_intervals = models.ManyToManyField(Service_Interval, related_name="intervals")
Вот мой взгляд:
def Import_Excel_pandas(request):
if request.method == 'POST' and request.FILES['myfile']:
myfile = request. FILES['myfile']
fs = FileSystemStorage()
filename = fs.save(myfile.name, myfile)
uploaded_file_url = fs.url(filename)
#exceldata = pd.read_csv(filename, index_col ="Requirements")
df=pd.read_csv('sheets/import_csv/'+filename, sep=',', usecols=['ID','Requirements','Service Intervals','Task Created'])
#print(df)
row_iter = df.iterrows()
objs = [
Task(
id = row['ID'],
requirements = row['Requirements'],
task_created = row['Task Created'],
#service_intervals = row['Service Intervals'], << - dont work.
)
for index, row in row_iter
]
Task.objects.bulk_create(objs)
Вот некоторые из CSV:
введите описание изображения здесь
Я думаю, что мне нужно сначала подключиться к подключению/созданию в Service_Interval, а затем добавить в Tasks внутри цикла, но я застрял на том, как/где добавить код внутри задачи объекта и правильно ли происходит процесс. Любая помощь будет оценена по достоинству, так как я застрял на этом уже некоторое время.
intervals = row['Service Intervals']
service_intervals = ast.literal_eval(intervals)
service_intervals = map(str.lower, service_intervals)
service_intervals = list(set(service_intervals))
for interval_name in service_intervals:
service_intervals, _ = Service_Interval.objects.get_or_create(name=interval_name)
Task.service_intervals.add(service_intervals)