Можно ли добавить два внешних ключа в один класс в django?
Привет, Гайзз, я новичок в django, так что может ли кто-нибудь помочь мне в этом? Я хочу добавить два внешних ключа в один класс, как я могу это сделать?
Пожалуйста, попробуйте прочитать PEP8 (https://peps.python.org/pep-0008/)
Вы можете добавить больше ForeignKeys
к одной и той же модели, но вы должны добавить разные related_name
для каждого FK:
class Fees(models.Model):
course=models.ForeignKey("app2.coursel", related_name='courses', on_delete=models.CASCADE)
branch=models.ForeignKey("app2.coursel", related_name='branches', on_delete=models.CASCADE)
fees=models.IntegerField()
И я согласен, на этот вопрос здесь уже отвечали: Django модель с 2 внешними ключами от одной таблицы
Да,
Если вам нужны два внешних ключа, указывающие на две разные модели / таблицы: сделайте @maxim's
- Пример: 1 на курсы, 1 на сборы
Если вам нужны два внешних ключа, указывающих на одну и ту же модель/таблицу, вы можете сделать Many-to-Many: https://docs.djangoproject.com/en/4.1/topics/db/examples/many_to_many/
- Пример: 2+ курса
Many-To-Many немного сложнее и привередливее, чем обычные внешние ключи (имо), но это довольно приятно, когда вы привыкнете к этому