从django admin导入csv文件数据

t9aqgxwy  于 2023-08-08  发布在  Go
关注(0)|答案(3)|浏览(130)

我想创建导入csv数据到数据库。我在我的应用程序上添加导入按钮。覆盖app/change_list。将正确添加按钮。我想添加在点击“导入”按钮文件将在同一模板页面上传的行动。数据将被保存。我指的链接
通过管理界面从CSV导入数据到django
Extending Django Admin for data import
但我不明白管理程序。我想在弹出窗口中打开文件上传添加选项,如image_file上传。

kuhbmx9i

kuhbmx9i1#

在admin cookbook网站上有一个上传CSV的很好的例子:
https://books.agiliq.com/projects/django-admin-cookbook/en/latest/import.html
代码如下所示:

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
    )

字符串

neekobn8

neekobn82#

我编写并使用了下面的代码:

import csv
def importcsv(request):
     if request.method == "POST":
        form = DataInput(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('Url/')
     else:
        form = DataInput()
        context = {"form": form}
        return render_to_response("imported.html", context,context_instance=RequestContext(request))

字符串
并在创建的import.html文件中具有

<form enctype="multipart/form-data" action="" method="post" id="importform">

dgjrabp2

dgjrabp23#

我知道这是一个较旧的帖子,但我有一个类似的问题,并使用了shell和本地csv文件,其中包含以下代码行:

from Contry.models import Countries
import pandas

for index, row in pandas.read_csv('./Country_data.csv').iterrows():
    x = Countries(name=f"{row['name']}", size=f"{row['area']}")
    x.save()

字符串

相关问题