1

Django flatpages は、django Site モデルとの多対多の関係を使用します

class FlatPage(Model)
    ...
    sites = ManyToManyField(Site)

新しいフラットページを作成するときは、サイトを選択する必要があります。後で複数のサイトを利用するかもしれませんが、今のところ不要で面倒です。追加フォームで現在の (そして唯一の) サイトを事前に選択したいと考えています。これを実現する方法がわかりません。デフォルトのフラットページの動作に対して、他にもいくつかの変更を行いました。しかし、これは私を逃れます。

私は次のようなことをしたかった:

sites = ManyToManyField(Site, default=Site.objects.get_current)

しかし、それはうまくいきません。どんな助けでも大歓迎です。

4

4 に答える 4

0

私はこれを行うためにちょっとしたjqueryを採用することになりました。それはあまりポータブルではありませんが、私のために働きました。サイトの選択ボックスのIDは「id_sites」であるため、次のようになります。

$('#id_sites').attr('selectedIndex',0);

最初のオプションを自動的に選択するだけです。これをドキュメントロードイベントに入れて、問題なく動作します。

于 2010-02-20T21:31:30.610 に答える
0

get current の後に末尾の括弧を忘れた

Site.objects.get_current()

于 2009-04-24T15:53:30.240 に答える
0

limit_choices_to引数を試しましたか?

または、サイト フレームワークに依存する必要がない場合は、フラットページから離れて、独自のカスタム ページ モデルを作成します。

于 2009-05-26T19:12:27.370 に答える