ToB企服应用市场:ToB评测及商务社交产业平台

标题: Django Admin管理后台导入CSV [打印本页]

作者: 我爱普洱茶    时间: 2024-9-10 02:01
标题: Django Admin管理后台导入CSV
修改管理模子,代码如下:
  1. class CsvImportForm(forms.Form):
  2.     csv_file = forms.FileField()
  3. @admin.register(Hero)
  4. class HeroAdmin(admin.ModelAdmin, ExportCsvMixin):
  5.     ...
  6.     change_list_template = "entities/heroes_changelist.html"
  7.     def get_urls(self):
  8.         urls = super().get_urls()
  9.         my_urls = [
  10.             ...
  11.             path('import-csv/', self.import_csv),
  12.         ]
  13.         return my_urls + urls
  14.     def import_csv(self, request):
  15.         if request.method == "POST":
  16.             csv_file = request.FILES["csv_file"]
  17.             reader = csv.reader(csv_file)
  18.             # Create Hero objects from passed in data
  19.             # ...
  20.             self.message_user(request, "Your csv file has been imported")
  21.             return redirect("..")
  22.         form = CsvImportForm()
  23.         payload = {"form": form}
  24.         return render(
  25.             request, "admin/csv_form.html", payload
  26.         )
复制代码
创建模板文件templates/entities/heroes_changelist.html
  1. {% extends 'admin/change_list.html' %}
  2. {% block object-tools %}
  3.     <a href="import-csv/">Import CSV</a>
  4.     <br />
  5.     {{ block.super }}
  6. {% endblock %}
复制代码
创建模板文件templates/admin/csv_form.html
  1. {% extends 'admin/base.html' %}
  2. {% block content %}
  3.     <div>
  4.         <form action="." method="POST" enctype="multipart/form-data">
  5.             {{ form.as_p }}
  6.             {% csrf_token %}
  7.                 <button type="submit">Upload CSV</button>
  8.         </form>
  9.     </div>
  10.     <br />
  11. {% endblock %}
复制代码
显示效果如下:



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4