在 Django 中将多个 "Place of Interest" 模型添加到一个 "Tour" 模型,并允许一个 "Place of Interest" 在多个 "Tour" 模型中

Add multiple "Place of Interest" model to a "Tour" model in Django and allow one "Place of Interest" to be in multiple "Tour" model

我想创建一个包含“旅游”和“名胜古迹”的旅游应用 “旅游”模型将有多个“感兴趣的地方”。一个“兴趣点”应该可以添加到多个“旅游”中。

到目前为止,我只能将一个“景点”添加到一个“旅游”。

这是我的模型:

class PlaceOfInterest(models.Model):
    name = models.CharField(max_length=255)
    tour = models.ForeignKey("Tour", on_delete=models.CASCADE, related_name="tours", blank=True, null=True)

class Tour(models.Model):
    title = models.CharField(max_length=255)

表示这种情况的最佳方式是什么?

要解决这个问题,您可以定义一个 Many-to-many 关系形式 TourPlaceOfInterest

试试这个

class PlaceOfInterest(models.Model):
    name = models.CharField(max_length=255)

class Tour(models.Model):
    title = models.CharField(max_length=255)
    tour = models.ManyToManyField("PlaceOfInterest", related_name="tour_poi", blank=True, null=True)