2016-10-18 19 views
0

私はモデルパズルとモデルピースを持っています。ピースには外部キーがあります。そして、管理者には、新しい要素を追加するためのパズルフォームに、私はスタックインラインをいくつか持っています。しかし、私は作品のすべてのデータを入力するだけで、さらに追加することができます。すでにデータベースに格納されているピース値をドロップダウンから選択して、新しいピースをパズルに追加する方法はありますか?私は永遠にgoogle'dと何も見つけられなかった....ありがとう。だから私が持っているものがある:私は、パズルを編集していたときに Djangoの管理者の外部キー値のカスタムフォーム

class Puzzle(models.Model): 
    name = models.CharField(max_length=200) 

class Piece(models.Model): 
    name = models.CharField(max_length=200) 
    puzzle = models.ForeignKey(Puzzle, null=True) 

とDjangoのバックエンドで

が、私はDBに保存されているすべてのピースモデルのドロップダウンから選択し、現在にそれらを「割り当てる」したいと思いますパズル私は編集しています。これは可能ですか?あなたは新しいモデルを作成した場合、何と言う...だから私はパズルのフォーム上の駒のstackedinlineを持っていますが、私は新しいものを作成することができます

class PieceInline(admin.StackedInline): 
     model = Piece 
     extra = 1 
class PuzzleAdmin(admin.ModelAdmin): 
     model = Piece 
     inlines = (PieceInLine,) 

答えて

1

:私が使用して、現時点でよ:

ここで、Pieceモデルオブジェクトを作成するときは、PieceSelectorオブジェクトも作成する必要があります。 Pieceモデルのpost_save信号を使用して行うことができ、すべての部分をドロップダウンに提供します。

admin.pyの場合、PuzzleモデルのStackedInlineとしてPieceSelectorを使用します。

+0

これを試してみると、私は数分であなたに返信します。ありがとう! –

+0

ポスト保存信号受信機能を追加しました –

+0

動作しません。パズルフォームのフィールドPieceSelectorが空です –

関連する問題