0

ねえ、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 を呼び出しています

ここでジャンゴが行っている闇の魔法はありますか? または明らかな何かが欠けていますか?

アップデート

私はabstract = Trueの部分を削除しようとしましたが、クラス Meta: db_table = 'same_table_as_base_model' で行きました

しかし今、djangoは列が見つからないと不平を言っています。

4

1 に答える 1