Python 在django中实现动态下拉菜单

Python 在django中实现动态下拉菜单,python,django,Python,Django,我想创建汽车详细信息的动态下拉菜单 所以我创建了四个模型 我的模特 class CompanyMake(models.Model): company_name = models.CharField(max_length = 100) def __unicode__(self): return self.company_name class MakeModel(models.Model): company = models.ForeignKey(Compa

我想创建汽车详细信息的动态下拉菜单

所以我创建了四个模型 我的模特

class CompanyMake(models.Model):
    company_name = models.CharField(max_length = 100)
    def __unicode__(self):
        return self.company_name

class MakeModel(models.Model):
    company = models.ForeignKey(CompanyMake)
    model_name = models.CharField(max_length = 100)
    def __unicode__(self):
        return self.model_name

class ModelParts(models.Model):
    company = models.ForeignKey(CompanyMake)
    model = models.ForeignKey(MakeModel)
    part_name = models.CharField(max_length = 100)
    def __unicode__(self):
        return self.part_name

class ModelYear(models.Model):
    company = models.ForeignKey(CompanyMake)
    model = models.ForeignKey(MakeModel)
    year_value = models.IntegerField()


class UserProfile(models.Model):
    user = models.OneToOneField(User,primary_key=True)   
    #image = models.ImageField(upload_to=get_photo_storage_path, null = True, blank=True)
    part = models.ForeignKey(ModelParts,null = True, blank=True) 
    phone_number = models.CharField( max_length = 10,verbose_name="Mobile Number 10 digits",null = True, blank=True, default=None)
现在我想创建汽车、车型、零件和年份的下拉菜单 如果选择了特定的汽车,则与该汽车相关的所有车型都应进入下一车型下拉菜单,如果选择了特定的下拉菜单,则与该车型相关的所有零部件都应进入与当年相同的下一零部件下拉菜单

我的观点

def home(request):
    cm = CompanyMake.objects.all()
    for a in cm:
        print a
        mm = a.makemodel_set.all()
        for b in mm:
            print b
            mp = b.modelparts_set.all()
            for c in mp:
                print c
                my = ModelYear.objects.all()
                print my

        return render(request,'choice.html',{'cm':cm,'mm':mm, 'mp':mp, 'my':my})
我的choice.html文件是

<select name="car">
    {% for car in cm %}

            <option value="{{car.key}}" selected="selected">{{car.company_name}}</option>

    {% endfor %}
</select>

        <br/>

{cm%中的汽车为%1}
{{car.company{u name}}
{%endfor%}

请把我引向正确的方向。我只得到汽车型号下拉菜单。通过上面的方法,我可以得到所有的下拉菜单,但它不会相互关联。
我想要相关顺序的下拉菜单。与汽车相关的所有模型都应该在那里,与模型相关的所有零件都应该在那里。

这就是JavaScript的用途。你能解释一下如何在django中使用JavaScript来实现这一点吗。如果有任何日志或堆栈溢出问题?请使用Ajax,将下拉列表与模型一起显示,然后在做出选择后发出Ajax请求,请求模型的部件,这将防止对数据库发出不必要的请求。是否有关于堆栈溢出或任何日志的相关问题?您应该使用Jquery,那样做很容易。