Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django管理表单覆盖默认值_Python_Django - Fatal编程技术网

Python Django管理表单覆盖默认值

Python Django管理表单覆盖默认值,python,django,Python,Django,我在django模型构造函数中设置默认值,如下所示 class Student(models.Model): name = models.TextField() location = models.TextField() def __init__(self, *args, **kwargs): self.location="sample" super(Student, self).__init__(*args, **kwargs) 现在我排除了ad

我在django模型构造函数中设置默认值,如下所示

class Student(models.Model):
  name = models.TextField()
  location = models.TextField()
   def __init__(self, *args, **kwargs):
        self.location="sample"
        super(Student, self).__init__(*args, **kwargs)
现在我排除了admin表单中的location字段。 但是如果你在学生管理中这样做

   def save_model(self, request, obj, form, change):

        raise Exception(obj.location)

然后,它被指定为空

django有自己的方法来设置默认值

class Student(models.Model):
    name = models.TextField()
    location = models.TextField(default="sample")
编辑1:

由于django将再次初始化实例,因此您的值将被覆盖。 改变顺序可能会有所帮助

def __init__(self, *args, **kwargs):        
    super(Student, self).__init__(*args, **kwargs)
    self.location="sample"
然而。 依靠Django的内置功能和 参数将是最简单的方法。


django有自己的方法来设置默认值

class Student(models.Model):
    name = models.TextField()
    location = models.TextField(default="sample")
编辑1:

由于django将再次初始化实例,因此您的值将被覆盖。 改变顺序可能会有所帮助

def __init__(self, *args, **kwargs):        
    super(Student, self).__init__(*args, **kwargs)
    self.location="sample"
然而。 依靠Django的内置功能和 参数将是最简单的方法。

使用模型字段参数设置默认值。如果您将该字段排除在任何形式的编辑之外,则将使用默认值

如果要更改默认值,则只需重写save方法;如果尚未在模型或表单中更改默认值,则只需设置save方法。

使用model field参数设置默认值。如果您将该字段排除在任何形式的编辑之外,则将使用默认值


如果要更改默认值,则只需重写save方法;如果尚未在模型或表单中更改默认值,则只需设置save方法。

但是“我的方法”有什么问题?您可以更改顺序以使位置分配生效。但是,它仍然可能导致另一个问题。但是我的方法有什么问题?您可以更改顺序以使您的位置分配工作正常。但是,它仍然可能导致另一个问题。发布
StudentAdmin的代码
发布
StudentAdmin的代码