Как повторить внешний ключ модели по нескольким полям в другой модели? + 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)