django - Django 文件保存到 sqlite3 db 和检索
问题描述
以下是我的设备型号:
class Device(models.Model):
device_type = models.ForeignKey(DeviceType,to_field='device_type')
serial_number = models.CharField(max_length=200,unique=True)
in_use_by = models.ForeignKey(User,to_field='username')
brand = models.CharField(max_length=200,default="-", null=False)
model = models.CharField(max_length=200,default="-", null=False)
type_number = models.CharField(max_length=200,blank=True,null=True, default = None)
mac_address = models.CharField(max_length=200,blank=True,null=True, default = None)
invoice = models.FileField(upload_to='', null=True)
在这里,发票字段在我的网站中对我没有用,但对我作为管理员有用。我基本上想做的是,如果设备请求被接受,我将使用管理面板将设备的发票上传到我的 sqlite db 中。我是 Django 的新手,因此需要帮助。另外,我只会通过 django admin 上传文件。我应该如何实现这一目标?我应该在上传参数中写什么以便文件存储在数据库中?
解决方案
您需要使用要编辑的必填字段来配置您的管理员。
在admin.py 中:
class DeviceAdmin(admin.ModelAdmin):
fields = ('device_type', 'invoice', ..)
admin.site.register(Device, DeviceAdmin)
编辑:
upload_to
参数是您需要存储文件的路径。通常它是MEDIA_ROOT
Django 设置中配置的路径。
models.FileField(upload_to=settings.MEDIA_ROOT, null=True)
在开发过程中为此服务:
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
在数据库中,只会存储文件的 URL。
推荐阅读
- swift5 - iOS SCNScene 如何使材质均匀照明而没有阴影?
- angular - 如何使用角度组件调用 Apexcharts 事件中的函数?
- pdf - 在 KB50001330 之后将 html 打印为 pdf 时文件名错误
- textures - 如何使用 meshroom 将语义分割掩码组合成 3D 纹理?
- amazon-web-services - 使用 AWS LEX 捕获任何用户输入
- python - 将图像的某些部分排除在 CNN 训练之外
- angular - 导致 ExpressionChangedAfterItHasBeenChecked 的 Observables
- exchangewebservices - SOAP UI 交换 ews 如何查找具有特定标题的项目?
- c++ - 如何在具有透明度的 QVideoWidget 上使用paintEvent?
- nginx - 如何使用 Nginx 禁止基于 url