Django обратная связь многие ко многим - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть вопрос с django о некоторых отношениях, которые я хочу использовать, и я очень запутался в этой задаче.

У меня есть две таблицы, одна таблица - ball, а другая table - стадион, вмоя проблема: на одном стадионе может быть много шаров, а на одном - может быть много стадионов.

здесь моя модель:

class ball(models.Model):
    code_ball=models.CharField(max_length=150,unique=True)
    description_ball = models.CharField(max_length=254)
    made_country_ball= models.CharField(max_length=254)
    f_ball= models.CharField(max_length=254)
    rel= models.ManyToManyField(stadium)

class stadium(models.Model):
    code_stadium=models.CharField(max_length=150,unique=True)
    description_stadium = models.CharField(max_length=254)
    made_country_stadium= models.CharField(max_length=254)
    andress_stadium= models.CharField(max_length=254)
    team_stadium= models.CharField(max_length=254)

мой вопрос заключается в том, как создать представление запроса, чтобы показать это в htmlшаблоны?например, на некоторых html-страницах нужно показать все детали из таблицы stadium и все или кулак code_ball с description_bal из таблицы balls.

я не знаю, как это сделать, потому что яУ меня нет внешнего ключа для таблицы ball для таблицы stadium, и каким-то образом мне нужно поменять отношения, чтобы создать новый запрос, есть идеи, как?

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

У вас должна быть ассоциативная сущность двух таблиц.

class ball(models.Model):
    code_ball=models.CharField(max_length=150,unique=True)
    description_ball = models.CharField(max_length=254)
    made_country_ball= models.CharField(max_length=254)
    f_ball= models.CharField(max_length=254)
    rel= models.ManyToManyField(stadium, through='StadiumBall')

class stadium(models.Model):
    code_stadium=models.CharField(max_length=150,unique=True)
    description_stadium = models.CharField(max_length=254)
    made_country_stadium= models.CharField(max_length=254)
    andress_stadium= models.CharField(max_length=254)
    team_stadium= models.CharField(max_length=254)

class StadiumBall(models.Model):
    stadium = models.ForeignKey(stadium, on_delete=models.CASCADE)
    ball = models.ForeignKey(ball, on_delete=models.CASCADE)

Вот документация

0 голосов
/ 18 декабря 2018

Если вы хотите иметь полную функциональность полей ManyToMany, вам нужно определить сквозную таблицу docs .Это ничего не меняет, но показывает, что действительно происходит за кулисами.Таким образом, вы можете использовать отношение Foreignkey для того, что хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...