44from django .contrib import admin
55from django .contrib import messages
66from django .contrib .admin import widgets
7+ from django .core .files .storage import default_storage
78from django .urls import path , reverse
89from django .template .response import TemplateResponse
910from django .utils import timezone
@@ -29,9 +30,7 @@ def get_option(option_name):
2930
3031def handle_uploaded_file (f , file_name ):
3132 # save site_logo
32- with open (settings .MEDIA_ROOT + '/' + file_name , 'wb+' ) as destination :
33- for chunk in f .chunks ():
34- destination .write (chunk )
33+ return default_storage .save (file_name , f )
3534
3635
3736class ImageBox :
@@ -109,11 +108,8 @@ def save(self):
109108 if not self .files .get (data_item ) or self .data .get (
110109 data_item ) == '' :
111110 continue
112- handle_uploaded_file (self .files .get (data_item ),
113- self .files .get (data_item ).name )
114- obj .option_value = settings .MEDIA_URL .lstrip (
115- '/' ) + self .files .get (
116- data_item ).name
111+ filename = handle_uploaded_file (self .files .get (data_item ), self .files .get (data_item ).name )
112+ obj .option_value = settings .MEDIA_URL + filename
117113 else :
118114 if obj .option_value == self .data .get (data_item ):
119115 continue
@@ -124,13 +120,10 @@ def save(self):
124120 self .errors [data_item ] = _ (
125121 'site_logo depends on setting.MEDIA_URL and setting.MEDIA_ROOT.' )
126122 return False
127- handle_uploaded_file (self .files .get (data_item ),
128- self .files .get (data_item ).name )
123+ filename = handle_uploaded_file (self .files .get (data_item ), self .files .get (data_item ).name )
129124 obj = Options .objects .create (
130125 option_name = data_item ,
131- option_value = settings .MEDIA_URL .lstrip (
132- '/' ) + self .files .get (
133- data_item ).name ,
126+ option_value = settings .MEDIA_URL + filename ,
134127 create_time = timezone .now ())
135128 else :
136129 obj = Options .objects .create (
0 commit comments