Ошибка привязки параметра 2 - возможно, неподдерживаемый тип - PullRequest
1 голос
/ 09 сентября 2011

Код ниже взят из views.py

def register(request):
    if request.method=="POST":
    form = RegisterForm (request.POST)
    if form.is_valid():
        success = True
        first_name = form.cleaned_data[ 'first_name']
        last_name = form.cleaned_data[ 'last_name']
        username  = form.cleaned_data[ 'username' ]
        password = form.cleaned_data[ 'password']
        confirm_password = form.cleaned_data[ 'confirm_password']
        address  = form.cleaned_data[ 'address' ]
        form.save()
        return HttpResponseRedirect("/success/")
    else:
        form=RegisterForm()
    return render_to_response('homepage/register.html',
        {'form':form,},context_instance=RequestContext(request))

Ниже трассировки ошибок:

  Traceback:
  File "/usr/local/lib/python2.6/site-packages/django/core/handlers/base.py" in 
  get_response 
  92. response = callback(request, *callback_args, **callback_kwargs)   
  File "/root/Desktop/blog/blog/../blog/apps/homepage/views.py" in register
  99. form.save()
  File "/usr/local/lib/python2.6/site-packages/django/forms/models.py" in save
  407. fail_message, commit, exclude=self._meta.exclude)
  File "/usr/local/lib/python2.6/site-packages/django/forms/models.py" in save_instance
  78.         instance.save()
  File "/usr/local/lib/python2.6/site-packages/django/db/models/base.py" in save
  410.         self.save_base(force_insert=force_insert, force_update=force_update)
  File "/usr/local/lib/python2.6/site-packages/django/db/models/base.py" in save_base
  495.                     result = manager._insert(values, return_id=update_pk)
  File "/usr/local/lib/python2.6/site-packages/django/db/models/manager.py" in _insert
  177.         return insert_query(self.model, values, **kwargs)
  File "/usr/local/lib/python2.6/site-packages/django/db/models/query.py" in          
  insert_query
  1087.     return query.execute_sql(return_id)
  File "/usr/local/lib/python2.6/site-packages/django/db/models/sql/subqueries.py" in 
  execute_sql
  320.         cursor = super(InsertQuery, self).execute_sql(None)
  File "/usr/local/lib/python2.6/site-packages/django/db/models/sql/query.py" in 
  execute_sql
  2369.         cursor.execute(sql, params)
  File "/usr/local/lib/python2.6/site-packages/django/db/backends/util.py" in execute
  19.             return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.6/site-packages/django/db/backends/sqlite3/base.py" in 
  execute
  193.         return Database.Cursor.execute(self, query, params)
  Exception Type: InterfaceError at /register/
  Exception Value: Error binding parameter 2 - probably unsupported type.

Что выдает параметр привязки ошибки 2 - возможно, неподдерживаемый тип.в коде?

Я новичок, я не знаю, как решить это исключение?Благодаря.

1 Ответ

1 голос
/ 03 марта 2017

Я знаю, что это старый вопрос, но у меня была проблема, похожая на эту, и я хотел бы поделиться своими выводами.

Мое решение : я использовал приведенную ниже конфигурацию в моемsettings/dev.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': ':memory:',
    }
}

И в моей модели у меня было:

class MyModel(models.Model):
    parameter0 = django.contrib.postgres.fields.JSONField()

Затем, когда Django попытался вставить parameter0 с MyModel(parameter0=some_value).save(), он не был поддержанбазы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...