Django表单-绑定参数0时出错-可能是不支持的类型

Django表单-绑定参数0时出错-可能是不支持的类型,django,django-models,django-forms,django-views,Django,Django Models,Django Forms,Django Views,当我尝试发送表单时,会出现类似“错误绑定参数0-可能是不支持的类型。”的错误 我检查了我的模型,并为测试的所有字段设置blank=True,但没有帮助。你能给我一些建议哪里有问题吗?或者是新的表情:) 我的回溯: Environment: Request Method: POST Request URL: http://127.0.0.1:8000/panel/order/create/19/ Django Version: 1.8.8 Python Version: 3.5.1 Insta

当我尝试发送表单时,会出现类似“错误绑定参数0-可能是不支持的类型。”的错误

我检查了我的模型,并为测试的所有字段设置blank=True,但没有帮助。你能给我一些建议哪里有问题吗?或者是新的表情:)

我的回溯:

Environment:

Request Method: POST
Request URL: http://127.0.0.1:8000/panel/order/create/19/

Django Version: 1.8.8
Python Version: 3.5.1
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'core',
 'client',
 'registration',
 'avatar',
 'filer',
 'mptt',
 'easy_thumbnails',
 'reversion',
 'guardian')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware')


Traceback:
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\core\handlers\base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\contrib\auth\decorators.py" in _wrapped_view
  22.                 return view_func(request, *args, **kwargs)
File "C:\Users\loc\PycharmProjects\CRM\core\views.py" in order_create
  347.         form_order = OrderCreateForm(request.POST)
File "C:\Users\loc\PycharmProjects\CRM\core\forms.py" in __init__
  34.             Platform.objects.filter(client_id=request_client_id).values_list('id', 'name'))
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\query.py" in __iter__
  162.         self._fetch_all()
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\query.py" in _fetch_all
  965.             self._result_cache = list(self.iterator())
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\query.py" in iterator
  1220.             for row in compiler.results_iter():
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\sql\compiler.py" in results_iter
  794.             results = self.execute_sql(MULTI)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\sql\compiler.py" in execute_sql
  840.             cursor.execute(sql, params)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\backends\utils.py" in execute
  79.             return super(CursorDebugWrapper, self).execute(sql, params)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\backends\utils.py" in execute
  64.                 return self.cursor.execute(sql, params)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\utils.py" in __exit__
  98.                 six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\utils\six.py" in reraise
  685.             raise value.with_traceback(tb)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\backends\utils.py" in execute
  64.                 return self.cursor.execute(sql, params)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\backends\sqlite3\base.py" in execute
  318.         return Database.Cursor.execute(self, query, params)

Exception Type: InterfaceError at /panel/order/create/19/
Exception Value: Error binding parameter 0 - probably unsupported type.
BLANK_CHOICE = (('', '---------'),)

class OrderCreateForm(forms.ModelForm):
    tag_from = forms.MultipleChoiceField(label='Tags')
    tag_to = forms.MultipleChoiceField()

    class Meta:
        model = Order
        fields = ('price', 'client', 'platform')

    def __init__(self, request_client_id, *args, **kwargs):
        super(OrderCreateForm, self).__init__(*args, **kwargs)
        self.fields['platform'].choices = BLANK_CHOICE + tuple(
            Platform.objects.filter(client_id=request_client_id).values_list('id', 'name'))
        self.fields['tag_from'].choices = OrderItemList.objects.all().values_list('id', 'name')
 @user_passes_test(lambda u: u.is_staff, login_url='/account/login/')
def order_create(request, request_client_id):
    dict = {}

    if request.method == 'POST':
        form_order = OrderCreateForm(request.POST)
       if form_order.is_valid():
            obj = form_order.save(commit=False)
            (...)
            obj.save()
            return HttpResponse('..')

        dict['form_order'] = form_order
        return render(request, 'panel/order/form.html', dict)
    else:
        dict['form_order'] = OrderCreateForm(request_client_id)
        return render(request, 'panel/order/form.html', dict)
Forms.py:

Environment:

Request Method: POST
Request URL: http://127.0.0.1:8000/panel/order/create/19/

Django Version: 1.8.8
Python Version: 3.5.1
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'core',
 'client',
 'registration',
 'avatar',
 'filer',
 'mptt',
 'easy_thumbnails',
 'reversion',
 'guardian')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware')


Traceback:
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\core\handlers\base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\contrib\auth\decorators.py" in _wrapped_view
  22.                 return view_func(request, *args, **kwargs)
File "C:\Users\loc\PycharmProjects\CRM\core\views.py" in order_create
  347.         form_order = OrderCreateForm(request.POST)
File "C:\Users\loc\PycharmProjects\CRM\core\forms.py" in __init__
  34.             Platform.objects.filter(client_id=request_client_id).values_list('id', 'name'))
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\query.py" in __iter__
  162.         self._fetch_all()
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\query.py" in _fetch_all
  965.             self._result_cache = list(self.iterator())
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\query.py" in iterator
  1220.             for row in compiler.results_iter():
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\sql\compiler.py" in results_iter
  794.             results = self.execute_sql(MULTI)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\sql\compiler.py" in execute_sql
  840.             cursor.execute(sql, params)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\backends\utils.py" in execute
  79.             return super(CursorDebugWrapper, self).execute(sql, params)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\backends\utils.py" in execute
  64.                 return self.cursor.execute(sql, params)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\utils.py" in __exit__
  98.                 six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\utils\six.py" in reraise
  685.             raise value.with_traceback(tb)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\backends\utils.py" in execute
  64.                 return self.cursor.execute(sql, params)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\backends\sqlite3\base.py" in execute
  318.         return Database.Cursor.execute(self, query, params)

Exception Type: InterfaceError at /panel/order/create/19/
Exception Value: Error binding parameter 0 - probably unsupported type.
BLANK_CHOICE = (('', '---------'),)

class OrderCreateForm(forms.ModelForm):
    tag_from = forms.MultipleChoiceField(label='Tags')
    tag_to = forms.MultipleChoiceField()

    class Meta:
        model = Order
        fields = ('price', 'client', 'platform')

    def __init__(self, request_client_id, *args, **kwargs):
        super(OrderCreateForm, self).__init__(*args, **kwargs)
        self.fields['platform'].choices = BLANK_CHOICE + tuple(
            Platform.objects.filter(client_id=request_client_id).values_list('id', 'name'))
        self.fields['tag_from'].choices = OrderItemList.objects.all().values_list('id', 'name')
 @user_passes_test(lambda u: u.is_staff, login_url='/account/login/')
def order_create(request, request_client_id):
    dict = {}

    if request.method == 'POST':
        form_order = OrderCreateForm(request.POST)
       if form_order.is_valid():
            obj = form_order.save(commit=False)
            (...)
            obj.save()
            return HttpResponse('..')

        dict['form_order'] = form_order
        return render(request, 'panel/order/form.html', dict)
    else:
        dict['form_order'] = OrderCreateForm(request_client_id)
        return render(request, 'panel/order/form.html', dict)
View.py:

Environment:

Request Method: POST
Request URL: http://127.0.0.1:8000/panel/order/create/19/

Django Version: 1.8.8
Python Version: 3.5.1
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'core',
 'client',
 'registration',
 'avatar',
 'filer',
 'mptt',
 'easy_thumbnails',
 'reversion',
 'guardian')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware')


Traceback:
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\core\handlers\base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\contrib\auth\decorators.py" in _wrapped_view
  22.                 return view_func(request, *args, **kwargs)
File "C:\Users\loc\PycharmProjects\CRM\core\views.py" in order_create
  347.         form_order = OrderCreateForm(request.POST)
File "C:\Users\loc\PycharmProjects\CRM\core\forms.py" in __init__
  34.             Platform.objects.filter(client_id=request_client_id).values_list('id', 'name'))
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\query.py" in __iter__
  162.         self._fetch_all()
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\query.py" in _fetch_all
  965.             self._result_cache = list(self.iterator())
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\query.py" in iterator
  1220.             for row in compiler.results_iter():
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\sql\compiler.py" in results_iter
  794.             results = self.execute_sql(MULTI)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\models\sql\compiler.py" in execute_sql
  840.             cursor.execute(sql, params)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\backends\utils.py" in execute
  79.             return super(CursorDebugWrapper, self).execute(sql, params)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\backends\utils.py" in execute
  64.                 return self.cursor.execute(sql, params)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\utils.py" in __exit__
  98.                 six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\utils\six.py" in reraise
  685.             raise value.with_traceback(tb)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\backends\utils.py" in execute
  64.                 return self.cursor.execute(sql, params)
File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\db\backends\sqlite3\base.py" in execute
  318.         return Database.Cursor.execute(self, query, params)

Exception Type: InterfaceError at /panel/order/create/19/
Exception Value: Error binding parameter 0 - probably unsupported type.
BLANK_CHOICE = (('', '---------'),)

class OrderCreateForm(forms.ModelForm):
    tag_from = forms.MultipleChoiceField(label='Tags')
    tag_to = forms.MultipleChoiceField()

    class Meta:
        model = Order
        fields = ('price', 'client', 'platform')

    def __init__(self, request_client_id, *args, **kwargs):
        super(OrderCreateForm, self).__init__(*args, **kwargs)
        self.fields['platform'].choices = BLANK_CHOICE + tuple(
            Platform.objects.filter(client_id=request_client_id).values_list('id', 'name'))
        self.fields['tag_from'].choices = OrderItemList.objects.all().values_list('id', 'name')
 @user_passes_test(lambda u: u.is_staff, login_url='/account/login/')
def order_create(request, request_client_id):
    dict = {}

    if request.method == 'POST':
        form_order = OrderCreateForm(request.POST)
       if form_order.is_valid():
            obj = form_order.save(commit=False)
            (...)
            obj.save()
            return HttpResponse('..')

        dict['form_order'] = form_order
        return render(request, 'panel/order/form.html', dict)
    else:
        dict['form_order'] = OrderCreateForm(request_client_id)
        return render(request, 'panel/order/form.html', dict)

按以下方式更改您的表单:

BLANK_CHOICE = ((0, '---------'),)

class OrderCreateForm(forms.ModelForm):
    tag_from = forms.MultipleChoiceField(label='Tags')
    tag_to = forms.MultipleChoiceField()

    class Meta:
        model = Order
        fields = ('price', 'client', 'platform')

    def __init__(self, request_client_id, *args, **kwargs):
        super(OrderCreateForm, self).__init__(*args, **kwargs)
        self.fields['platform'].choices = BLANK_CHOICE + tuple((x.id, x.name) for x in Platform.objects.filter(client_id=request_client_id))

按以下方式更改您的表单:

BLANK_CHOICE = ((0, '---------'),)

class OrderCreateForm(forms.ModelForm):
    tag_from = forms.MultipleChoiceField(label='Tags')
    tag_to = forms.MultipleChoiceField()

    class Meta:
        model = Order
        fields = ('price', 'client', 'platform')

    def __init__(self, request_client_id, *args, **kwargs):
        super(OrderCreateForm, self).__init__(*args, **kwargs)
        self.fields['platform'].choices = BLANK_CHOICE + tuple((x.id, x.name) for x in Platform.objects.filter(client_id=request_client_id))

表单将
request\u client\u id
作为第一个参数。因此,您必须在每次提交表单时传递
request\u client\u id
,包括提交post请求时

if request.method == 'POST':
    form_order = OrderCreateForm(request_client_id, request.POST)

表单将
request\u client\u id
作为第一个参数。因此,您必须在每次提交表单时传递
request\u client\u id
,包括提交post请求时

if request.method == 'POST':
    form_order = OrderCreateForm(request_client_id, request.POST)

这是工作。我尝试使用此变量,但顺序是request.POST、request\u client\u id,但这不起作用。您有
def\u init\u(self、request\u client\u id、*args、**kwargs):
,因此
request\u client\u id
必须是第一个参数。如果使用关键字参数
OrderCreateForm(data=request.POST,request\u client\u id=request\u client\u id)
,则可以交换顺序,但我不建议这样做。如果你对论点的顺序一致,就不会那么混乱了。这是工作。我尝试使用此变量,但顺序是request.POST、request\u client\u id,但这不起作用。您有
def\u init\u(self、request\u client\u id、*args、**kwargs):
,因此
request\u client\u id
必须是第一个参数。如果使用关键字参数
OrderCreateForm(data=request.POST,request\u client\u id=request\u client\u id)
,则可以交换顺序,但我不建议这样做。如果你能始终如一地对论点进行排序,就不会那么令人困惑了。谢谢你的回答,但这不是问题:)谢谢你的回答,但这不是问题:)