Hey i have a model that can be accesed through 2 different urls(depending on the domain). And i use them like this in views and templates without problems.
When building the sitemap the get_absolute_url should not return the same so i thought: i can subclass the model and override the get_absolute_url method:
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
And then use this subclassed model for the sitemap class
class ConcertsSiteMap(Sitemap):
def items(self):
return FanpitConcert.objects.all().filter(app='Fanpit')
But when i access /sitemap.xml django still calling the get_absolute_url from the original model
Is there any dark magic django is doing here? or Am i missing something obvious?
UPDATE
I tried removing the abstract = True part and went with class Meta: db_table = 'same_table_as_base_model'
But now django complains about not finding columns.
Instead of abstraction, it would be better to use proxy models in this case.
So the subclassed models would have
class Meta:
proxy = True
More info on proxy models here.