最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用Django Admin管理后臺導入CSV

 更新時間:2020年11月06日 16:15:00   作者:韓志超  
這篇文章主要介紹了如何使用Django Admin管理后臺導入CSV,幫助大家更好的理解和使用django框架,感興趣的朋友可以了解下

假設你需要允許在Hero管理頁面上導入CSV數(shù)據(jù)。為此,您需要添加一個指向更改Hero列表頁面的鏈接,點擊這個鏈接會跳轉(zhuǎn)到上傳頁面。你需要編寫一個處理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 %}

修改完后,會在更改Hero后臺列表頁面上會有一個Import CSV的鏈接.

點擊后上傳頁面顯示如下。

以上就是如何使用Django Admin管理后臺導入CSV的詳細內(nèi)容,更多關于Django Admin導入CSV的資料請關注腳本之家其它相關文章!

相關文章

最新評論

土默特右旗| 榆树市| 南平市| 凤翔县| 当阳市| 永福县| 富源县| 新龙县| 天镇县| 克什克腾旗| 昔阳县| 永寿县| 库伦旗| 新和县| 高州市| 青岛市| 新源县| 利川市| 忻州市| 凤庆县| 平顺县| 德清县| 昭通市| 芷江| 恩施市| 荔浦县| 双桥区| 西乌| 义乌市| 高邮市| 遂平县| 申扎县| 华阴市| 弥渡县| 平乡县| 汾西县| 沛县| 九江市| 衡山县| 万安县| 大丰市|