404 при вызове функции Dajaxice причина WSGI Alias
У меня есть комбинированные списки в форме, которые динамически обновляются с помощью Dajaxice, у меня нет проблем в разработке для этого, но при работе с WSGI у меня возникает следующая проблема:
VirtualHost для проекта имеет псевдоним WSGIScriptAlias /dgp /path/to/wsgi
для загрузки веб-приложения все маршруты строятся под этим дочерним сайтом, а Dajaxice - там, где должен быть URL http://example.com/dgp/dajaxice/ventas.updatecomboproducto/
вместо этого мы имеем http://example.com/dajaxice/ventas.updatecomboproducto/
где, очевидно, ничего не могу найти, так что я не знаю, как сказать, что Dajaxice замечает псевдоним wsgi, я пытался с DAJAXICE_MEDIA_PREFIX='dgp'
но это работает только под дочерний сайт, это означает, что работает только с http://desarrollorivas.no-ip.org/dgp/dgp/dajaxice/ventas.updatecomboproducto/
это ничего не решает.
Есть идеи? Это код, в categoria
где я вызываю процесс Dajaxice и загружаю URL:
class DetallePedidoModelForm(forms.ModelForm):
id = forms.IntegerField(widget=forms.HiddenInput)
categoria = forms.ChoiceField(choices=[[0, '----------']] + [[c.id, c.nombre] for c in Categoria.objects.all()],widget=forms.Select(
attrs={'onchange': 'Dajaxice.ventas.updatecomboproducto(Dajax.process, {"option":this.value,"id":this.id});'}))
#producto = forms.ChoiceField(choices=[[0, '----------']] + [[p.id, p.nombre] for p in Producto.objects.all()],widget=forms.Select(
#attrs={'onchange': 'Dajaxice.ventas.updatevaluecantidadproducto(Dajax.process, {"option":this.value,"id_producto":this.id});'}))
cantidad = forms.IntegerField(widget=NumberInput(attrs={'min':'0','step':'1','style':'width: 50px;','value':'0'}))
descuento = forms.FloatField(widget=NumberInput(attrs={'step':'any','style':'width: 50px;','value':'0.0'}))
pvp_manipulacion = forms.FloatField(widget=NumberInput(attrs={'step':'any','value':'0.0'}))
class Meta:
model = Detalle_Pedido
fields = ["id","categoria","producto","unidad_precio","cantidad","descuento","manipulacion","pvp_manipulacion"]
def __init__(self,*args,**kwargs):
super(DetallePedidoModelForm, self).__init__(*args,**kwargs)
self.fields['categoria'].empty_label = "Selecciona una categoria"
self.fields['producto'].widget.attrs["onchange"] = 'Dajaxice.ventas.updatevaluecantidadproducto(Dajax.process, {"option":this.value,"id_producto":this.id});'
PedidoForm = modelform_factory(Pedido, PedidoModelForm, exclude=("producto",),formfield_callback=make_custom_datefield)
DetallePedidoFormSet = modelformset_factory(Detalle_Pedido,exclude=("unidad_precio","pedido",),
form=DetallePedidoModelForm)
urls.py
from django.conf.urls import patterns, include, url
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from . import views
from dajaxice.core import dajaxice_autodiscover, dajaxice_config
dajaxice_autodiscover()
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'dgp.views.home', name='home'),
#url(r'^login/$', views.login,{'template_name': 'login.html'},name="my_login"),
url(r'^login/$', 'django.contrib.auth.views.login',{'template_name': 'login.html'},name="my_login"),
url(r'^logout/', 'django.contrib.auth.views.logout',{'template_name': 'logout.html'},name="my_logout"),
url(r'^ventas/', include('ventas.urls', namespace="ventas")),
url(r'^admin/', include(admin.site.urls)),
url(r'^$', include('ventas.urls')),
url(dajaxice_config.dajaxice_url, include('dajaxice.urls')),
)+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
С уважением!
1 ответ
Код должен учитывать, что точка монтирования URL-адреса приложения может не находиться в корне веб-сайта, используя соответствующие функции для создания URL-адреса, который включает в себя точку монтирования. Смотрите документацию по адресу: