Djangoの管理サイトを使用してファイルをアップロードするアプリケーションがあります。私は別の関数で使用できるようにファイルのURLを返す必要があります。このプロセスは、アプリケーションによって保存されたファイルではなく、元のファイルの名前を取得できるという事実を別にして、うまく動作します。たとえば、アップロードするファイルの名前がsomefile.xxxで、djangoがsomefile_1.xxxという名前を付けて保存する場合、somefile.xxxがすでにサーバー上に存在するため、somefile_1.xxxを返すことはできませんが、元のファイル名を取得しています。これは私のコードです。アップロードされたファイルのURLをdjangoの管理者に取得する
admin.py
def add_view(self, request, form_url="", extra_context=None):
...
ModelForm = self.get_form(request)
if request.method == 'POST':
form = ModelForm(request.POST, request.FILES)
if form.is_valid():
url = MEDIA_URL+'files/'+request.FILES['filename'].name
url = iri_to_uri(url)
title = form.cleaned_data['title']
name = request.FILES['filename'].name
newname = os.path.splitext(request.FILES['filename'].name)[0]
data = utils.convert(url, title, newname)
print data
return super(FileAdmin, self).add_view(request, form_url="", extra_context=extra_context)
ソリューション:
def save_model(self, request, obj, form, change):
...
obj.save()
url = obj.video.url
title = obj.title
newname = str(obj.id)
data = utils.convert(url, title, newname)
print data