Python Django ChainedForeignKey智能菜单

Python Django ChainedForeignKey智能菜单,python,django,select,menu,many-to-many,Python,Django,Select,Menu,Many To Many,我正在尝试制作链式选择菜单,我有以下型号: from django.db import models class Health_plan(models.Model): name = models.CharField(max_length=15) class Doctors_list(models.Model): name = models.CharField(max_length=30) specialty = models.CharField(max_length=

我正在尝试制作链式选择菜单,我有以下型号:

from django.db import models

class Health_plan(models.Model):
    name = models.CharField(max_length=15)

class Doctors_list(models.Model):
    name = models.CharField(max_length=30)
    specialty = models.CharField(max_length=15)
    health_plans = models.ManyToManyField(Health_plan, related_name="doctors")
    location = models.CharField(max_length=15)

    def __unicode__(self):
        return self.name
这是我的
表单.py

class SpecForm(ModelForm):
    a = Doctors_list.objects.values_list('specialty', flat=True)
    unique = [('---------------','---------------')] + [(i,i) for i in set(a)]
    specialty = forms.ChoiceField(choices=unique)
    class Meta:
        model = Doctors_list

class HealthForm(ModelForm):
    hplan = ChainedForeignKey(
        Health_plan, 
        chained_field="specialty",
        chained_model_field="specialty", 
        show_all=False, 
        auto_choose=True
    )   
from django.conf.urls import patterns, include, url
from testApp.views import spec_form
from testApp.views import health_form 
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    url(r'^$', 'Medbook.views.home', name='home'),
    # url(r'^Medbook/', include('Medbook.foo.urls')),
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^hello/$',  spec_form, health_form),
)
from django.shortcuts import render_to_response 
from testApp.forms import SpecForm
from testApp.forms import HealthForm

def spec_form (request):
    if request.method == 'POST':
        form = SpecForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = SpecForm()
    return render_to_response('hello.html', {'form':form})

def health_form (request):
     if request.method == 'POST':
        form = HealthForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = SpecForm()
    return render_to_response('hello.html', {'form':form})
我的
url.py

class SpecForm(ModelForm):
    a = Doctors_list.objects.values_list('specialty', flat=True)
    unique = [('---------------','---------------')] + [(i,i) for i in set(a)]
    specialty = forms.ChoiceField(choices=unique)
    class Meta:
        model = Doctors_list

class HealthForm(ModelForm):
    hplan = ChainedForeignKey(
        Health_plan, 
        chained_field="specialty",
        chained_model_field="specialty", 
        show_all=False, 
        auto_choose=True
    )   
from django.conf.urls import patterns, include, url
from testApp.views import spec_form
from testApp.views import health_form 
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    url(r'^$', 'Medbook.views.home', name='home'),
    # url(r'^Medbook/', include('Medbook.foo.urls')),
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^hello/$',  spec_form, health_form),
)
from django.shortcuts import render_to_response 
from testApp.forms import SpecForm
from testApp.forms import HealthForm

def spec_form (request):
    if request.method == 'POST':
        form = SpecForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = SpecForm()
    return render_to_response('hello.html', {'form':form})

def health_form (request):
     if request.method == 'POST':
        form = HealthForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = SpecForm()
    return render_to_response('hello.html', {'form':form})
和我的
视图.py

class SpecForm(ModelForm):
    a = Doctors_list.objects.values_list('specialty', flat=True)
    unique = [('---------------','---------------')] + [(i,i) for i in set(a)]
    specialty = forms.ChoiceField(choices=unique)
    class Meta:
        model = Doctors_list

class HealthForm(ModelForm):
    hplan = ChainedForeignKey(
        Health_plan, 
        chained_field="specialty",
        chained_model_field="specialty", 
        show_all=False, 
        auto_choose=True
    )   
from django.conf.urls import patterns, include, url
from testApp.views import spec_form
from testApp.views import health_form 
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    url(r'^$', 'Medbook.views.home', name='home'),
    # url(r'^Medbook/', include('Medbook.foo.urls')),
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^hello/$',  spec_form, health_form),
)
from django.shortcuts import render_to_response 
from testApp.forms import SpecForm
from testApp.forms import HealthForm

def spec_form (request):
    if request.method == 'POST':
        form = SpecForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = SpecForm()
    return render_to_response('hello.html', {'form':form})

def health_form (request):
     if request.method == 'POST':
        form = HealthForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = SpecForm()
    return render_to_response('hello.html', {'form':form})
现在我得到的错误是当我访问网页时,
“function”对象不可编辑。
我是Django的新手,我觉得这很棘手。用户必须选择一个专业,然后应显示涵盖该专业的健康计划

健康计划与医生有很多关系。当一个人选择一个专业时,脚本应该检查哪个医生属于该专业,并检索这些医生持有的所有健康计划

我希望我说得很清楚,因为我的代码不是这样的

谢谢你的帮助

编辑:堆栈跟踪

内部服务器错误:/hello/
回溯(最近一次呼叫最后一次):
文件“C:\Python27\lib\site packages\django\core\handlers\base.py”,第103行,在get\U响应中
解析程序匹配=解析程序.resolve(请求.path\u信息)
文件“C:\Python27\lib\site packages\django\core\urlresolvers.py”,第321行,在resolve中
子匹配=模式解析(新路径)
文件“C:\Python27\lib\site packages\django\core\urlresolvers.py”,第221行,在resolve中
kwargs.update(self.default_参数)
TypeError:“函数”对象不可编辑
[08/May/2013 19:30:45]“GET/hello/HTTP/1.1”500 62490

url(r'^hello/$,规格表单,健康表单)
to
url(r'^hello/$,规格表单)

此外,在模型中:

class Health_plan(models.Model):
    name = models.CharField(max_length=15)
    def __unicode__(self):
        return "%s"%(self.name)

你能显示url.py吗?更新了,见上面,添加了视图。py Too什么是
url(r'^hello/$,SpecForm,HealthForm)
?对不起,我复制了一个过时版本的url.py,已经更新了应该
url(r'^hello/$,spec表单,health表单)
不是
url(r'^hello/$,spec表单)
?url格式为
url(模式、视图名称、名称、kwargs)