Skip to main content
 首页 » 编程设计

python之Django 模型的默认实例

2024年10月17日22kenshinobiy

我的问题是:无论如何要为类语言创建一个默认实例吗?像这样:

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关于覆盖保存方法。