我是django的新手,并且正在设计一些包含FileFields的基本模型。
以下是我的模型示例:
class Sample(models.Model):
pub_date = models.DateTimeField('Publish Date', default=datetime.now)
upfile = models.FileField(upload_to='samples/')
我已经通过管理员测试了文件上传,但现在我正在寻找其他解决方案来通过REST API提交文件。我的第一次搜索导致活塞,但大多数示例似乎不涉及模型,只有文件上传到网站。
我的目标是解析目录,例如使用os.walk,并提交文件并使用文件信息填充模型。
那说我正在寻找建议和线索以便开始调查。
提前致谢!
答案 0 :(得分:8)
你可能不应该再寻找新建筑的活塞了。它基本上没有维护,现在已经有一段时间了。 django-tastypie和django-rest-framework是你最好的选择,尽管还有一些功能不全的框架出现了。
REST框架支持标准的表单编码文件上传,请参阅http://django-rest-framework.org/api-guide/fields.html#filefield
我不确定tastypie对文件上传的支持。
答案 1 :(得分:1)
我回到了基础,并决定尝试创建一个读取调用File和Sample Model的本地脚本。由于我将直接从同一台服务器提交文件,因此该解决方案比使用REST API更加简单,它提供了比我需要的更多的灵活性。
这是我的解决方案:
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import sys
sys.path.append('/opt/proj')
sys.path.append('/opt/proj/web')
from django import db
from django.core.files import File
from django.utils import timezone
from web.myapp.models import Sample
filesample = File(open(sys.argv[1],'rb'))
filesample.name = os.path.basename(filesample.name)
Sample(upfile=filesample, pub_date=timezone.now()).save()
回顾这个非常简单,但我希望它可以帮助有同样问题的人。
随意发表评论。 谢谢!