私はCMS page extensionジャンゴを持っている:ジャンゴCMSページの拡張データの重複
class MyAppExtension(PageExtension):
show_in_catalog = models.BooleanField()
filters_to_show = models.ManyToManyField(Attribute)
extension_pool.register(MyAppExtension)
再生回数:
class MyListView(FilterView):
.....
def get_filterset_kwargs(self, filterset_class):
extension = MyAppExtension.objects.get(
extended_object=self.request.current_page)
attributes = extension.filters_to_show.all()
を今すぐすべてのページに、私は、属性のリストを取得する必要があります。しかし、ライブでは、モードで空リストを取得します。 ドラフトモードに切り替えると、期待通りに属性リストが取得されます。
ちょっと混乱した後、私はMyAppExtension.objects.all()
がページごとに複製されていて、いずれの場合も空のfilters_to_show
リストが重複していることを発見しました。私はそれが私が呼ぶときは異なるpk
を持ってMyAppExtension.objects.get(extended_object=self.request.current_page)
呼び出すライブモードでも
- 何が起こっているか
- どのようにして正しいオブジェクトを取得できますかライブモード?
- すべての内線番号に重複があるのはなぜですか?
ええ、コピーの関係で解決しましたが、cms docsのコードが私の場合には正しくないことに注意してください。モデルクラスでは、私は 'copy copy_relations(self、oldinstance、language): self.filters_to_show = oldinstance.filters_to_show.all()'と書きました。 –
フィードバックをいただき、ありがとうございます。私はドキュメントを見ていきます。 –