Найти - Пользователи
Полная версия: Какая разница между ForeignKey и ManyToManyField
Начало » Django » Какая разница между ForeignKey и ManyToManyField
1
Radzhab
в общем сабж
Chern
ForeignKey представляет собой отношение “один ко многим”, ManyToManyField - “многие ко многим”
Radzhab
хм.. кажись моветон делать многие ко многим) или я не прав?
FishHook
Radzhab
хм.. кажись моветон делать многие ко многим) или я не прав?

Когда есть отношение многие-ко-многим Джанга создает кросс-таблицу и при запросах строит джойны через эту таблицу. Ты можешь предложить другой вариант реализации?
Radzhab
Я не знал что джанга умеет такие вещи
FishHook
Radzhab
Я не знал что джанга умеет такие вещи

class ManyToManyField(othermodel)
A many-to-many relationship. Requires a positional argument: the class to which the model is related. This works exactly the same as it does for ForeignKey, including all the options regarding recursive and lazy relationships.

Related objects can be added, removed, or created with the field's RelatedManager.

Database Representation
Behind the scenes, Django creates an intermediary join table to represent the many-to-many relationship. By default, this table name is generated using the name of the many-to-many field and the name of the table for the model that contains it. Since some databases don't support table names above a certain length, these table names will be automatically truncated to 64 characters and a uniqueness hash will be used. This means you might see table names like author_books_9cdf4; this is perfectly normal. You can manually provide the name of the join table using the db_table option.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB