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数据库中。我是 Django 的新手,因此需要帮助来实现此目的。 另外,我只会通过 django 管理员上传文件。我应该如何实现这一点? 我应该在上传到参数中写入什么,以便将文件存储在数据库中?

您需要使用要编辑的必填字段配置管理员。

admin.py

class DeviceAdmin(admin.ModelAdmin):
fields = ('device_type', 'invoice', ..)
admin.site.register(Device, DeviceAdmin)

Django 管理字段参考

编辑

upload_to参数是需要存储文件的路径。通常它是在 Django 设置中配置的MEDIA_ROOT路径。

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。

最新更新