1

我正在使用站点框架并希望将当前站点保存site为我的模型之一的默认值。

模型:

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对象保存为我保存实例site的任何时候的属性?或者我是否需要通过覆盖表单或模型的方法(或类似的覆盖)手动执行此操作?MyModelMyModelsave

4

1 回答 1

2

You can set the default site.

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)

This will only work if you have created a site in your database and also set the SITE_ID in settings.py

于 2017-09-19T20:25:26.680 回答