2017-09-19 3 views
0

サイトフレームワークを使用していて、現在のサイトを自分のモデルのデフォルトのsite値として保存したいとします。サイトフレームワークを使用してDjangoフォームで現在のサイトをデフォルトとして使用するにはどうすればよいですか?

モデル:

class MyModel(models.Model): 
    site = models.ForeignKey(
     Site, 
     on_delete=models.CASCADE, 
     default=Site.objects.get_current()) # THIS IS WHAT I WANT TO DO (DOESN'T WORK) 
    ...other fields... 

MyModelいつのsite属性が、私はMyModelインスタンスを保存すると、自動的に現在のSiteオブジェクトを保存する方法はありますか?または、フォームまたはモデルのsaveメソッド(または同様のオーバーライド)をオーバーライドして手動で行う必要がありますか?

+1

何の意味動作しませんsettings.pySITE_IDをデータベースでサイトを作成しても設定している場合にのみ動作しますか? –

答えて

1

デフォルトサイトを設定できます。

models.py

def get_current_site(): 
    return Site.objects.get_current().id 


class MyModel(models.Model): 
    site = models.ForeignKey(
     Site, 
     on_delete=models.CASCADE, 
     default=get_current_site) 

あなたは

関連する問題