2014-11-11 2 views
1

사전 응용 프로그램을 빌드하고 모델에 어려움을 겪고 있습니다. Django 모델은 다른 두 모델과 관련됩니다.

는 지금이

class Term(models.Model): 
    term_text = models.CharField("phrase term text", max_length=100) 

class Definition(models.Model): 
    term     = models.ForeignKey(Term) 
    definition_text   = models.TextField() 


class Country(models.Model): 
     #is this correct method? 
     #Should i add ForeginKey for both Term and Definition here? 

문제는 국가이다 썼다. 용어와 정의는 많은 국가에서 용어가 사용 가능할 수있는 국가 필드를 가져야하며 정의는 다른 국가에 대한 다른 정의가있는 특정 국가에만 국한 될 수 있습니다.

이제이 국가 모델을 어떻게 작성합니까?

저는 용어와 정의의 모델 필드로 django-countries를 사용하려고했지만 객체 당 하나의 국가 만 사용하도록 제한했습니다.

+1

당신은 용어 및 정의 국가의 외래 키를 추가 할 수 있습니다 당신이 가질 수있는 사람이 많은 나라 –

+0

을 가질 수있는 하나 개의 용어 나 정의했다 아닌가? 용어와 정의의 외래 키를 추가하여 1 대 다수를 얻으십시오. @TanveerAlam – EzzatA

답변

1

원하는 것은 용어와 정의 ​​모두에서 ManyToMany 관계입니다. 그러면 my_term.countriesmy_definition.countries으로 전화 할 수 있습니다. 그것은 다른 방법으로 주위 많은 관계

class Term(models.Model): 
    term_text = models.CharField("phrase term text", max_length=100) 
    country = models.ManyToManyField(Country) 


class Definition(models.Model): 
    term = models.ForeignKey(Term) 
    definition_text = models.TextField() 
    country = models.ManyToManyField(Country) 


class Country(models.Model): 
    # define Country model 

    class Meta: 
     verbose_name_plural = "countries" 
관련 문제