Как повторить внешний ключ модели по нескольким полям в другой модели? + Django

Я хочу построить Trip.Model с несколькими присвоениями Hotel.Model, каждое из которых имеет свое имя поля. Пример(_pb, _hv, _nl)

class Trip(models.Model):
    hotel_pb = models.ForeignKey(Hotel, on_delete=models.PROTECT, blank=True)
    hotel_hv = models.ForeignKey(Hotel, on_delete=models.PROTECT, blank=True)
    hotel_nl = models.ForeignKey(Hotel, on_delete=models.PROTECT, blank=True)

Как мне добиться этого без создания нескольких Hotel.Model ?

  • Я пробовал использовать тот же Foreignkey, но выдает ошибку.

    Reverse accessor 'Activity.trip_set' for 'gobasic.Trip.acitivity_3' clashes with reverse accessor for 'gobasic.Trip.acitivity_1'. HINT: Add or change a related_name argument to the definition for 'gobasic.Trip.acitivity_3' or 'gobasic.Trip.acitivity_1'

Используйте related_name, см. ниже.

hotel_pb = models.ForeignKey(Hotel, related_name = 'hotel_pb', on_delete=models.PROTECT, blank=True)
    hotel_hv = models.ForeignKey(Hotel, related_name = 'hotel_hv',on_delete=models.PROTECT, blank=True)
    hotel_nl = models.ForeignKey(Hotel, related_name = 'hotel_nl',on_delete=models.PROTECT, blank=True)
Вернуться на верх