Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用django-select2的表单的NoReverseMatch_Python_Django_Jquery Select2_Django Urls - Fatal编程技术网

Python 使用django-select2的表单的NoReverseMatch

Python 使用django-select2的表单的NoReverseMatch,python,django,jquery-select2,django-urls,Python,Django,Jquery Select2,Django Urls,我有两个视图部分,一个是将字段保存到数据库中,另一个是自动完成字段。如何在html模板中同时使用它们 第一视图: def stock(request): stocks_form=StocksForm(None) if request.method == "POST": stocks_form =StocksForm(data=request.POST) if stocks_form.is_valid(): instance=stocks_form.save()

我有两个视图部分,一个是将字段保存到数据库中,另一个是自动完成字段。如何在html模板中同时使用它们

第一视图:

def stock(request):
stocks_form=StocksForm(None)
if request.method == "POST":
    stocks_form =StocksForm(data=request.POST)
    if stocks_form.is_valid():
        instance=stocks_form.save()
        instance.user=request.user
        instance.save()
        messages.success(request,"Successful" ,extra_tags="savestock")
    else:
        messages.error(request, "Error!")

else:
    stocks_form=StocksForm()
return render(request,'BallbearingSite/stock.html',{'stocks_form':stocks_form})
第二种观点:

class StocksAutocomplete(autocomplete.Select2QuerySetView):
    def get_queryset(self):
        if not self.request.user.is_authenticated():
            return Stocks.objects.none()
        qs = Stocks.objects.all()
        if self.q:
            qs = qs.filter(name__istartswith=self.q)
        return qs
url.py

url(r'^stock/$',views.stock,name='stock'),
url(r'^stock_autocomplete/$',views.StocksAutocomplete.as_view(create_field='name'),name='stock_autocomplete'),
项目URL.py:

urlpatterns = [
url(r'^$',views.index,name='index'),
url(r'^ajax_select/', include(ajax_select_urls)),
url(r'^admin/BallbearingSite/controlsite/$',views.sendemailview),
url(r'^admin/', include(admin.site.urls)),
url(r'^',include('BallbearingSite.urls', namespace='BallbearingSite')),
url(r'^logout/$',views.user_logout,name='logout'),
url(r'^login/$',views.user_login,name='login'),
url(r'^ckeditor/', include('ckeditor_uploader.urls')),
url('^', include('django.contrib.auth.urls')),
 ]
模板:

<form enctype="multipart/form-data" method="post" >
{% csrf_token %}

{{ stocks_form.as_p }}

<input id="savestocks" type="submit" name="" value="ثبت">
</form>
它有以下错误:

NoReverseMatch at /stock/

Reverse for 'stock_autocomplete' with arguments '()' and keyword arguments'{}' not found. 0 pattern(s) tried: []
它错误地突出显示了这些部分:

    {{ stocks_form.as_p }}
以及:


您可能在url中缺少名称空间。如果stock_autocomplete url位于BallbearingSite命名空间中,您可以执行以下操作:

'name': autocomplete.ModelSelect2(url='BallbearingSite:stock_autocomplete')

如何导入您的URL?你能显示你项目的URL.py吗?你是说这些URL吗?urlr“^stock/$”,views.stock,name='stock',urlr“^stock\u autocomplete/$”,views.stocksautomplete.as\u viewcreate\u field='name',name='stock\u autocomplete'No,我是指django项目的URL。这似乎是你的股票应用程序的URL。我把它添加到上面的代码中了。太棒了!正如@Alasdair所提到的,它表明您正在使用一个名称空间
   return render(request,'BallbearingSite/stock.html',{'stocks_form':stocks_form})
'name': autocomplete.ModelSelect2(url='BallbearingSite:stock_autocomplete')