如何使用Django Admin管理后臺(tái)導(dǎo)入CSV
假設(shè)你需要允許在Hero管理頁面上導(dǎo)入CSV數(shù)據(jù)。為此,您需要添加一個(gè)指向更改Hero列表頁面的鏈接,點(diǎn)擊這個(gè)鏈接會(huì)跳轉(zhuǎn)到上傳頁面。你需要編寫一個(gè)處理POST請求的方法,來從CSV文件中獲取數(shù)據(jù)對象:
class CsvImportForm(forms.Form):
csv_file = forms.FileField()
@admin.register(Hero)
class HeroAdmin(admin.ModelAdmin, ExportCsvMixin):
...
change_list_template = "entities/heroes_changelist.html"
def get_urls(self):
urls = super().get_urls()
my_urls = [
...
path('import-csv/', self.import_csv),
]
return my_urls + urls
def import_csv(self, request):
if request.method == "POST":
csv_file = request.FILES["csv_file"]
reader = csv.reader(csv_file)
# Create Hero objects from passed in data
# ...
self.message_user(request, "Your csv file has been imported")
return redirect("..")
form = CsvImportForm()
payload = {"form": form}
return render(
request, "admin/csv_form.html", payload
)
然后創(chuàng)建模板文件entities/heroes_changelist.html,以覆蓋原有的admin/change_list.html:
{% extends 'admin/change_list.html' %}
{% block object-tools %}
<a href="import-csv/" rel="external nofollow" >Import CSV</a>
<br />
{{ block.super }}
{% endblock %}
最后,創(chuàng)建上傳頁面csv_form.html:
{% extends 'admin/base.html' %}
{% block content %}
<div>
<form action="." method="POST" enctype="multipart/form-data">
{{ form.as_p }}
{% csrf_token %}
<button type="submit">Upload CSV</button>
</form>
</div>
<br />
{% endblock %}
修改完后,會(huì)在更改Hero后臺(tái)列表頁面上會(huì)有一個(gè)Import CSV的鏈接.

點(diǎn)擊后上傳頁面顯示如下。

以上就是如何使用Django Admin管理后臺(tái)導(dǎo)入CSV的詳細(xì)內(nèi)容,更多關(guān)于Django Admin導(dǎo)入CSV的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
關(guān)于Python 中的時(shí)間處理包datetime和arrow的方法詳解
這篇文章主要介紹了關(guān)于Python 中的時(shí)間處理包datetime和arrow的相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Python實(shí)現(xiàn)合并帶有嵌入圖片的單元格
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)合并帶有嵌入圖片的單元格,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-12-12
python中28種極坐標(biāo)繪圖函數(shù)總結(jié)
這篇文章主要為大家詳細(xì)介紹了python中28種極坐標(biāo)繪圖函數(shù)的用法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起了解一下2023-09-09
自己編程中遇到的Python錯(cuò)誤和解決方法匯總整理
這篇文章主要介紹了自己編程中遇到的Python錯(cuò)誤和解決方法匯總整理,本文收集整理了較多的案例,需要的朋友可以參考下2015-06-06

