Многочисленные отношения «один-ко-многим» между двумя моделями
Я застрял на вопросе, в котором мне действительно нужна помощь, поэтому я создавал средство поиска маршрутов и создал модель транспортного средства с 2 отношениями start_location и final_location. Я хочу, чтобы они были внешними ключами, поскольку я не хочу иметь несколько вариантов при выборе начального и конечного местоположения, а внешний ключ определяет отношение «один ко многим», что означает, что одно местоположение может иметь несколько транспортных средств, но одно транспортное средство не может быть связано с несколькими местоположениями.
Итак, мой вопрос заключается в том, выдаст ли Django ошибку, если я создам несколько полей с внешним ключом и подключусь к местоположению, которое, как я думаю (я могу ошибаться), создаст отношение «многие-ко-многим»
Спасибо за понимание
class Destination(models.Model):
name = models.CharField(max_length=100)
state = models.ForeignKey(State, on_delete=models.CASCADE,related_name="destination")
country = models.ForeignKey(Country, on_delete=models.CASCADE,related_name="destination")
class vehicle(models.Model):
start_time = models.CharField(max_length=10)
reaching_time = models.CharField(max_length=10)
startdestination = models.ForeignKey(Destination, on_delete=models.CASCADE,related_name="startdestinations")
subdestination = models.ForeignKey(Destination, on_delete=models.CASCADE,related_name="subdestinations")
finaldestination = models.ForeignKey(Destination, on_delete=models.CASCADE,related_name="finaldestinations")
fare = models.IntegerField()
confirmed = models.BooleanField()
distance = models.IntegerField()
Выдаст ли Django ошибку, если я создам несколько полей внешнего ключа и подключусь к location?
No, given the related_name=…
[Django-doc] and the related_query_name=…
[Django-doc] are unique. Sicne the related_query_name=…
defaults to the related_name=…
if given, it is thus sufficient to provide a unique related_name=…
and not construct ForeignKey
s with a given equivalent related_query_name=…
.
Note: The
related_name=…
parameter [Django-doc] is the name of the relation in reverse, so from theDestination
model to theVehicle
model in this case. Therefore it (often) makes not much sense to name it the same as the forward relation. You thus might want to consider renaming therelation tostartdestination
vehicles_started
.