Menambahkan bidang ke hubungan ManyToMany Django ORM

Jadi saya sedang membangun database di mana saya perlu memiliki bidang yang terkait dengan hubungan ManyToMany tertentu, tapi saya tidak tahu bagaimana menerjemahkannya ke dalam Django ORM. Misalnya, saya memiliki beberapa Artikel yang dapat digabungkan dengan beberapa Publikasi, namun saya ingin melihat artikel mana yang paling banyak dilihat.

Saya pikir saya bisa membangun database seperti ini:

+------------+--------+--------+-------+
| art_pub_id | art_id | pub_id | views |
+------------+--------+--------+-------+
| 101        | 201    | 301    | 6     |
+------------+--------+--------+-------+
| 102        | 201    | 302    | 4     |
+------------+--------+--------+-------+
| 103        | 202    | 301    | 8     |
+------------+--------+--------+-------+

Atau saya bisa melakukan ini

+------------+--------+--------+
| art_pub_id | art_id | pub_id |
+------------+--------+--------+
| 101        | 201    | 301    |
+------------+--------+--------+
| 102        | 201    | 302    |
+------------+--------+--------+
| 103        | 202    | 301    |
+------------+--------+--------+

+----+------------+-------+
| pk | art_pub_id | views |
+----+------------+-------+
| 1  | 101        | 6     |
+----+------------+-------+
| 2  | 102        | 4     |
+----+------------+-------+
| 3  | 103        | 8     |
+----+------------+-------+

Saya kesulitan dengan cara menerjemahkan ini ke Django ORM. Saya memiliki Artikel dengan ManyToManyField yang menunjuk ke Publikasi, tetapi saya tidak tahu di mana atau bagaimana menempatkan tampilan IntegerField. Saya telah mencoba memiliki kelas Publication_Article yang memiliki dua bidang ManyToMany dan bidang tampilan saya, tapi saya tidak yakin itu cara yang tepat untuk melakukannya.

Saya juga sepenuhnya menyadari bahwa saya mungkin melakukan pendekatan yang salah terhadap masalah dengan desain database saya, sehingga mengetahui cara terbaik untuk melakukan hal ini akan sangat berharga bagi saya.


person Logan Waite    schedule 26.04.2017    source sumber
comment
Apakah Anda familiar dengan kemampuan manyToMany Through? Jika Penayangan pada dasarnya adalah jumlah penayangan untuk artikel X ketika ditampilkan di publikasi Y, hal itu tampaknya paling masuk akal.   -  person Foon    schedule 27.04.2017
comment
@Foon Saya tidak melakukannya, tetapi setelah membaca dokumentasinya (saya rasa saya harus lebih teliti saat pertama kali) sepertinya itulah yang saya cari.   -  person Logan Waite    schedule 27.04.2017
comment
@LoganWaite mungkin Anda tertarik untuk membaca tentang masalah ini di pertanyaan ini stackoverflow.com/questions/3368442/   -  person Angel F    schedule 27.04.2017