2017-09-19 51 views
0

我正在使用Sites Framework,並且希望將當前網站保存爲我的某個模型的默認site值。如何使用Sites框架將當前網站用作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... 

是否有辦法來自動保存當前Site對象MyModel隨時隨地的site屬性我節省MyModel實例?或者我需要通過覆蓋表單或模型的save方法(或類似的覆蓋)手動執行此操作?

+1

你是什麼意思不起作用SITE_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) 

,如果你已經在數據庫中創建了一個網站,也可以設置在settings.py