以下是我的设备型号:
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。