嘿,我有一个可以通过 2 个不同的 url 访问的模型(取决于域)。我在视图和模板中像这样使用它们没有问题。
在构建站点地图时,get_absolute_url 不应该返回相同的结果,所以我想:我可以子类化模型并覆盖 get_absolute_url 方法:
class FanpitConcert(BandtasticConcert):
def get_absolute_url(self):
return ('event_checkout',(),{'artist_slug':self.slug_name,
'year': self.get_date().year,
'month': self.get_date().month,
'day': self.get_date().day,
})
class Meta:
abstract = True
然后将这个子类模型用于站点地图类
class ConcertsSiteMap(Sitemap):
def items(self):
return FanpitConcert.objects.all().filter(app='Fanpit')
但是当我访问 /sitemap.xml django 仍然从原始模型调用 get_absolute_url
django 在这里有什么黑魔法吗?还是我错过了一些明显的东西?
更新
我尝试删除 abstract = True 部分并使用 class Meta: db_table = 'same_table_as_base_model'
但是现在 django 抱怨找不到列。