python - 如何在 Django 中插入多条记录?

标签 python django

View .py

def input_transaksi(request):    
    kode_pem = dict(request.POST)['kode_pem']
    nominal = dict(request.POST)['nominal']
    rincian = Transaksi(kode_pem=kode_pem,nominal=nominal)
    rincian.save()

模型.py
class Transaksi(models.Model):
    nominal = models.IntegerField(null=True, blank=True)
    kode_pem = models.CharField(max_length=2, null=True, blank=True)

然后我从这个表格输入数据
{% for t in trans %} #for looping form
    <from  method="post" action="{% url 'input_transaksi' %}" enctype="multipart/form-data">    
    <input type="hidden" name="kode_pem">           
        <input type="hidden" name="nominal">
    <input type="submit" value="Insert" class="btn btn-primary">
    </form>
{% endfor %}

但我收到此错误:
Environment: Request Method: POST Request URL: http://localhost:8000/transaksi/input_transaksi

Django Version: 1.10.4 Python Version: 2.7.11 Installed Applications: ['django.contrib.admin',  'django.contrib.auth',  'django.contrib.contenttypes',  'django.contrib.sessions',  'django.contrib.messages',  'django.contrib.staticfiles',  'django.contrib.humanize',  'datapribadisiswa',  'riwayatsekolah',  'riwayatprestasi',  'dataguru',  'biaya_pendidikan',  'transaksi_kas', 'kodepembayaran',  'django_ajax',  'import_export'] Installed Middleware: ['django.middleware.security.SecurityMiddleware',  'django.contrib.sessions.middleware.SessionMiddleware',  'django.middleware.common.CommonMiddleware',  'django.middleware.csrf.CsrfViewMiddleware',  'django.contrib.auth.middleware.AuthenticationMiddleware',  'django.contrib.messages.middleware.MessageMiddleware',  'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\core\handlers\exception.py" in inner
  39.             response = get_response(request)

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\core\handlers\base.py" in _legacy_get_response
  249.             response = self._get_response(request)

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\core\handlers\base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\core\handlers\base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "C:\Users\Lenovo\OneDrive\siswa\transaksi_kas\views.py" in input_transaksi
  1213.     rincian.save()

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\db\models\base.py" in save
  796.                        force_update=force_update, update_fields=update_fields)

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\db\models\base.py" in save_base
  824.             updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\db\models\base.py" in _save_table
  908.             result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\db\models\base.py" in _do_insert
  947.                                using=using, raw=raw)

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\db\models\manager.py" in manager_method
  85.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\db\models\query.py" in _insert
  1045.         return query.get_compiler(using=using).execute_sql(return_id)

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\db\models\sql\compiler.py" in execute_sql
  1053.             for sql, params in self.as_sql():

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\db\models\sql\compiler.py" in as_sql
  1006.                 for obj in self.query.objs

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\db\models\sql\compiler.py" in prepare_value
  945.             value = field.get_db_prep_save(value, connection=self.connection)

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\db\models\fields\__init__.py" in get_db_prep_save
  755.                                       prepared=False)

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\db\models\fields\__init__.py" in get_db_prep_value
  747.             value = self.get_prep_value(value)

File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\db\models\fields\__init__.py" in get_prep_value
  1832.         return int(value)

Exception Type: TypeError at /transaksi/input_transaksi Exception Value: int() argument must be a string or a number, not 'list'

我该如何解决?

最佳答案

您好,您可以使用 批量创建 方法。

此方法以高效的方式将提供的对象列表插入到数据库中(通常只有 1 个查询,无论有多少个对象):

引用文档bulk-create

关于python - 如何在 Django 中插入多条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50147095/

相关文章:

python - 如何在 OpenCV Python 中将偏色应用于视频帧?

Python keras 如何将密集层转换为卷积层

python - Pydev 中的 Django 会产生多个进程?

python - 如何将 Django View 与 Angular js 前端连接?

python - 在具有给定字母的所有可能的 4 字符字符串中查找 4 字符字符串索引的有效方法

javascript - Python Selenium Scraping Javascript - 找不到元素

python - 命令 "python3 -m pip install [...]"失败,错误代码为 1 无

python - Django:检查 values_list 中的值是否有和没有 prefetch_related/select_related

python - 使用 Django 实时显示数据

python - Django 和多图上传表单