Model Django berhubungan dengan dua model lainnya

Saya mencoba membuat aplikasi kamus dan mengalami kesulitan dengan modelnya.

Sekarang saya menulis ini

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?

Masalahnya adalah Negara. Istilah dan Definisi harus memiliki kolom Negara karena Istilah dapat tersedia di banyak negara dan definisi dapat dibatasi pada negara tertentu dengan definisi lain untuk negara lain.

sekarang bagaimana melakukan model negara ini?

Saya telah mencoba menggunakan negara Django sebagai bidang model untuk Istilah dan Definisi tetapi membatasi saya untuk hanya menggunakan 1 negara per objek.


person EzzatA    schedule 11.11.2014    source sumber
comment
Anda dapat menambahkan kunci asing negara dalam Istilah dan Definisi maka Anda dapat memiliki hubungan satu ke banyak jika satu Istilah atau Definisi dapat memiliki banyak Negara   -  person Tanveer Alam    schedule 11.11.2014
comment
Bukankah sebaliknya? menambahkan kunci asing dari istilah dan definisi untuk mendapatkan satu ke banyak? @TanveerAlam   -  person EzzatA    schedule 11.11.2014


Jawaban (1)


Yang Anda inginkan adalah hubungan ManyToMany pada Term dan Definisi. Dengan begitu Anda dapat menelepon my_term.countries dan 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