2017-09-19 37 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