Подтвердить что ты не робот

Django: какая разница (rel & field)

В чем разница между Django models.ManyToManyField и models.ManyToManyRel? Я смущен этим.

4b9b3361

Ответ 1

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

Почему вы не следуете фактической документации?

Ответ 2

ManyToManyRel используется ManyToManyField для реализации объекта отношения для базового класса Field, который он расширяет. Если бы вы создали новый класс полей, который расширил класс Field и содержал отношения "многие ко многим", вы могли бы найти этот класс удобным, но его не следует использовать в ваших моделях (именно там вы увидите всплывающее предложение если ваш редактор перечисляет доступные вызовы).

См. класс Field @: https://github.com/django/django/blob/master/django/db/models/fields/__init__.py класс ManyToManyRel и класс ManyToManyField @: https://github.com/django/django/blob/master/django/db/models/fields/related.py

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