python - Django 模型的默认实例

标签 python django django-models

我的问题是:有没有办法为语言类创建默认实例?像这样:

class Language(models.
     default_instance = Language(name="unknown")
     name = models.CharField(max_length=100)

所以学生类可以使用这个:

class Student(models.Model):
         name = models.CharField(max_length=50)
         language = models.ForeignKey(Language, default = Language.default_instance.pk )

谢谢!

最佳答案

您可以通过覆盖保存方法来设置它:

#your model
class Student(models.Model):
  name = models.CharField(max_length=50)
  language = models.ForeignKey(Language)

    # override save
    def save(self,**args,**kwargs):
      if self.language is None:
        default_language = Language.objects.get(pk=1) #set to default
        self.language = default_language
    super(Student,self).save(self,*args,**kwargs) # the 'real' save

参见here关于重写保存方法。

关于python - Django 模型的默认实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39459559/

相关文章:

python - Django - 上传有效图像

python - Ajax 成功调用显示带有表单数据的 div

Python:WAITING外部启动的进程完成

python - 在 Python 中搜索、插入和替换文本的前一行

python - 抓取网页的 "preview"- Python

python - 列 <column> 不存在(Django 1.8)

django - 摆脱 django testsuite 中的空 models.py

python - 如何从 Pandas 中的两列形成元组列

javascript - 默认情况下,如何让 HTML 文件从底部显示

python - Django 属性错误 : object has not attribute 'forms'