【问题标题】:python/django adding directory files to dbpython/django将目录文件添加到db
【发布时间】:2017-09-02 06:09:13
【问题描述】:

我有一个文件夹,其中包含我想添加到我的数据库中的几个 pdf,但是使用下面的代码,每次我刷新我的页面时,相同的数据都会再次添加到数据库中,有没有办法避免这种情况和只有新数据添加到数据库?谢谢

 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})

【问题讨论】:

  • 在你的模型中你可以使用 unique = True
  • 它不起作用,现在我得到 IntegrityError

标签: django python-3.x django-views


【解决方案1】:

你可以试试get or create:

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()

【讨论】:

  • 很高兴帮到你,别忘了采纳答案
  • 我是新手,我该如何接受。现在我遇到了另一个问题,如果我从文件夹中删除了一个文件,有没有办法让我从 dB 中自动删除它?
猜你喜欢
  • 2022-12-17
  • 2017-02-04
  • 1970-01-01
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多