โมเดล 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-country เป็นฟิลด์ตัวอย่างสำหรับคำศัพท์และคำจำกัดความ แต่มันจำกัดให้ฉันใช้เพียง 1 ประเทศต่อวัตถุ


person EzzatA    schedule 11.11.2014    source แหล่งที่มา
comment
คุณสามารถเพิ่มคีย์ต่างประเทศของประเทศในคำศัพท์และคำจำกัดความจากนั้นคุณสามารถมีความสัมพันธ์แบบหนึ่งต่อหลายความสัมพันธ์ได้หนึ่งคำหรือคำจำกัดความสามารถมีได้หลายประเทศ   -  person Tanveer Alam    schedule 11.11.2014
comment
มันไม่ใช่อย่างอื่นเหรอ? เพิ่มคีย์ต่างประเทศของทั้งคำศัพท์และคำจำกัดความเพื่อรับหนึ่งต่อหลาย ๆ อัน? @TanveerAlam   -  person EzzatA    schedule 11.11.2014


คำตอบ (1)


สิ่งที่คุณต้องการคือความสัมพันธ์ ManyToMany ทั้งในแง่คำและคำจำกัดความ ด้วยวิธีนี้คุณจะสามารถโทร my_term.countries และ my_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"
person Dayne Jones    schedule 11.11.2014