python / django добавление файлов каталогов в базу данных

-1

У меня есть папка, которая содержит несколько PDF файлов, которые я бы хотел добавить в мой db, но с помощью кода ниже, каждый раз, когда я обновляю свою страницу, те же данные снова добавляются в db, есть ли способ избежать этого и есть только новые данные добавлены в db? Спасибо

 def index(request):
        path = "/Users/Sam/Desktop/docs"
        mylist1 = os.listdir(path)
        mylist2 = glob.glob(path + "//*.pdf")
        mylist1.pop(0)
        file = []
        for z in mylist1:
            file.append(os.path.splitext(z)[0])
        for (x, y) in zip(file, mylist2):
            p = File(file_name=x, file_path=y)
            p.save()
        all_files = File.objects.all().order_by('file_name')
        return render(request, 'form/index.html', {'all_files': all_files})
  • 0
    в ваших моделях вы можете использовать unique = True
  • 0
    Это не сработало, теперь я получаю IntegrityError
Теги:
python-3.x
django-views

1 ответ

1
Лучший ответ

вы можете попробовать получить или создать:

for (x, y) in zip(file, mylist2):
    File.objects.get_or_create(file_name=x, file_path=y)

вместо

for (x, y) in zip(file, mylist2):
    p = File(file_name=x, file_path=y)
    p.save()
  • 0
    Работал как шарм, большое спасибо
  • 0
    рад помочь вам, не забыл принять ответ
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню