Django 模型按地址排序

Django models sorting by address

提问人:narcel 提问时间:8/29/2023 更新时间:8/30/2023 访问量:14

问:

我需要为事件创建一个模型。事件必须有一个地址,以便将来我可以按地址(按城市)对模型进行排序。怎么做?

如果地址写在一行中,如何按城市对模型进行排序?还是为城市做一个单独的领域会更好?

class TeamEvent(models.Model):
    title = models.CharField(max_length=255)
    logo = models.ImageField(blank=True, null=True)
    description = models.TextField(null=True, blank=True)
    date = models.DateTimeField()
    address = models.CharField(max_length=500, null=True, blank=True)

    teams = models.ManyToManyField(Team, blank=True, null=True)
    cat = models.ForeignKey(Category, on_delete=models.DO_NOTHING)

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('TeamEventDetail', kwargs={'pk': self.pk})
姜戈

评论


答:

0赞 user20223018 8/30/2023 #1

你永远无法确定地址的哪一部分是街道,哪一部分是城市。这就是为什么所有表格都要求您分别填写城市和地址的原因。拆分地址时,请考虑以下情况:

  1. 如果一条街道由 2 个单独的单词组成怎么办?
  2. 一个人居住的门牌号是多少,由 2 个单独的数字组合而成?
  3. 如果城市由 2 个词组成怎么办?

不是想粗鲁,但最好的情况是将地址、门牌号和城市分开。理想情况下,您还应该拥有邮政编码。