2017-03-16 34 views
0

我是Python和Django的新手。如何自動將照片與Django中的數據庫同步?

我正在開發一個需要Django的項目。在這個項目中,一個程序通過攝像頭不斷捕捉照片,並將其存儲在路徑C:\Users\admin\Pictures中。

現在我想讓Django APP自動將這些照片與數據庫同步,而不是登錄到Django管理站點並手動上傳它們。如何在Django中正確執行該操作?

這裏是models.py

from __future__ import unicode_literals 

from django.db import models 
from django.conf import settings 
from django.utils.encoding import python_2_unicode_compatible 

# Create your models here. 

@python_2_unicode_compatible 
class Image(models.Model): 
    title = models.CharField(max_length=250, blank=True) 
    original = models.ImageField(upload_to=settings.IMAGE_PREFIX, default='/tmp/none.jpg') 

    def __str__(self): 
     return self.title 

我寫的劇本只是嘗試同步這些照片:

import os 
import django 

django.setup() 

from gallery.models import Image  

path = r"C:\Users\admin\Pictures" 

for filename in os.listdir(path): 
    filePath = os.path.join(path, filename) 
    thisFile = open(filePath, 'rb') 
    new_img = Image(original=thisFile, title=filename) 
    new_img.save() 

但我得到的錯誤信息如下:

Error Message

I當我試圖通過thisFileImage(),但我不知道如何解決這個問題時,肯定會有錯過。

非常感謝!

+0

這是否幫助你https://groups.google.com/forum/#!topic/django-users/GE5eCdse_OQ ??? –

回答

0

FileField期望django File對象。

import os 
import django 
from django.core.files import File 

django.setup() 

from gallery.models import Image  

path = r"C:\Users\admin\Pictures" 

for filename in os.listdir(path): 
    filePath = os.path.join(path, filename) 
    thisFile = File(open(filePath, 'rb')) 
    new_img = Image(original=thisFile, title=filename) 
    new_img.save()