Добавление поля в отношение ManyToMany Django ORM

Итак, я создаю базу данных, в которой мне нужно иметь поле, связанное с конкретным отношением ManyToMany, но я не знаю, как перевести это в Django ORM. Например, у меня есть несколько статей, которые могут быть объединены с несколькими публикациями, но я хочу узнать, какая статья получила больше всего просмотров.

Я полагаю, что могу построить базу данных так:

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

Или я мог бы сделать это

+------------+--------+--------+
| 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     |
+----+------------+-------+

Я борюсь с тем, как перевести это на Django ORM. У меня есть статья с ManyToManyField, указывающим на публикацию, но я не знаю, где и как разместить представления IntegerField. Я пробовал иметь класс Publication_Article, который имеет два поля ManyToMany и поле моих представлений, но я не уверен, что это правильный способ сделать это.

Я также полностью осознаю, что могу неправильно подойти к проблеме с дизайном моей базы данных, и в этом случае знание того, как лучше всего это сделать, будет для меня бесценным.


person Logan Waite    schedule 26.04.2017    source источник
comment
Вы знакомы с функцией manyToMany Through? Если просмотры - это в основном количество просмотров статьи X при отображении в публикации Y, это кажется наиболее разумным.   -  person Foon    schedule 27.04.2017
comment
@Foon Я не был, но после прочтения документации к нему (думаю, мне нужно быть более внимательным при первом прохождении), похоже, что это то, что я мог бы искать.   -  person Logan Waite    schedule 27.04.2017
comment
@LoganWaite, возможно, вам будет интересно прочитать об этом в этом вопросе stackoverflow.com/questions/3368442/   -  person Angel F    schedule 27.04.2017