0

私はチェーン選択メニューを作成しようとしています.私はこのモデルを持っています:

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

そして、これは私のものforms.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
    )   

私のurls.py

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),
)

そして私のviews.py

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' object is not iterable今では、Webページにアクセスしたときにエラーが発生します。私はDjangoが初めてで、これは難しいと思います。ユーザーは専門分野を 1 つ選択する必要があり、その専門分野をカバーする health_plans が表示されます。

health_plans には、医師と多対多の関係があります。人が専門分野を選択すると、スクリプトはどの医師がその専門分野に属しているかをチェックし、それらの医師が保持するすべての健康計画を取得する必要があります。

私のコードではそうではありません。

どんな助けでも親切に感謝します

編集: スタック トレース

Internal Server Error: /hello/ Traceback (most recent call last): File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 103, in get_response resolver_match = resolver.resolve(request.path_info) File "C:\Python27\lib\site-packages\django\core\urlresolvers.py", line 321, in resolve sub_match = pattern.resolve(new_path) File "C:\Python27\lib\site-packages\django\core\urlresolvers.py", line 221, in resolve kwargs.update(self.default_args) TypeError: 'function' object is not iterable [08/May/2013 19:30:45] "GET /hello/ HTTP/1.1" 500 62490

4

1 に答える 1

0

変化する:

url(r'^hello/$', spec_form, health_form)url(r'^hello/$', spec_form)

また、モデルでは:

class Health_plan(models.Model):
    name = models.CharField(max_length=15)
    def __unicode__(self):
        return "%s"%(self.name)
于 2013-05-08T19:37:29.167 に答える