Найти - Пользователи
Полная версия: M2M или "курица и яйцо"
Начало » Django » M2M или "курица и яйцо"
1
romankrv
Hi.
вот проблема:
сначала код
class Publication(models.Model):
title = models.CharField(max_length=30)

class Article(models.Model):
headline = models.CharField(max_length=100)
publications = models.ManyToManyField(Publication)
class Publication(models.Model):
title = models.CharField(max_length=30)
article = models.ManyToManyField(Article)


class Article(models.Model):
headline = models.CharField(max_length=100)
В чем принципиальное отличие между двумя моделями если по сути в базе создаются таблицы одинаковой структуры то есть меняются местами поля в таблицах. Ведь если это многие ко многим то по сути нет большого различия куда прописывать models.ManyToManyField(имя модели) и это просто сделано условно, что бы не запутаться. Так ли это? единственное в чем различие проявляется, так это в написании запросов и обращение к моделям через менеджера моделей по типу то back или forward.
Так ли это или я не прав?

Спасибо
Ferroman
Да, фактически разницы нету.
И в одном и в другом случае создаётся промежуточная таблица. Просто первичной принимается та в которой явно задано отношение.
Почти. Просто может быть по-разному реализовано.
Приблизительно так:
1. Первая таблица ссылается на промежуточную как один-к-многим
2. Промежуточная - к второй как один-к-многим
или
1. Первая - к промежуточной как один-к-многим
2. Вторая к промежуточной как один-к-многим

В джанге - надо посмотреть как она реально это делает.
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