2016-03-21 103 views
-1

我做的,我需要国家州市relation.if我选择任何一个国家则只有其相关的国家应该表现出的形式只是相关的统计显示。 我的models.py如何建立国家与国家之间的关系,这样,当选择任何一个国家

class Country(models.Model): 
    countryId=models.IntegerField(default=0) 
    country=models.CharField(max_length=50) 

    def __str__(self): 
     return self.country 

class State(models.Model): 
    state_id=models.IntegerField(default=0) 
    state=models.CharField(max_length=50) 

    def __str__(self): 
     return self.state 


class City(models.Model): 
    cityid=models.IntegerField(default=0) 
    city=models.CharField(max_length=50) 

    def __str__(self): 
     return self.city 

和views.py中

class alldataviewset(viewsets.ModelViewSet): 
    print "in views et" 
    queryset=All.objects.all() 
    serializer_class=AllSerializers 
    print "before get" 
    def list(self, request,*args): 
     data=request.GET 
     var=data.get('var') 
     print"before if",var 
     if var=='101': 
      print "inside if" 
      for i in range(1,42): 
       print "inside for" 
       print "states of india",i 


     else: 
      print "hahahha" 

     return Response("serializer.data") 

我的看法是working.but自己的意志非常漫长的,如果像this.there写约为260国我database.and约4200状态,所以如果写完整的代码,像我这样,那么我写的代码我views.py里约4500倍。我认为这不是正确的方式。请让我知道我怎么写我的代码。

回答

0

您可以使用chained jQuery库。

重写render_option为外键字段forms.py:

使用你的模型之间的关系是一对多的使用使用models.ForeignKeyhere

看这个post对于选择加入。

+0

对于许多千分之一的孩子,你可以使用Ajax http://stackoverflow.com/questions/35611775/how-to-limit-the-choices-of-a-child-field-based-on-a-parent-fields - 值/ 35638407#35638407 – erajuan