以下是我的设备型号:
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上传文件。我该怎么做到这一点? 我应该在上传到参数时写什么,以便将文件存储在数据库中?
答案 0 :(得分:0)
您需要使用要编辑的必填字段配置管理员。
在 admin.py :
class DeviceAdmin(admin.ModelAdmin):
fields = ('device_type', 'invoice', ..)
admin.site.register(Device, DeviceAdmin)
修改强>:
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。