2015-03-30 81 views
0

我想从窗体中隐藏一个模型的字段,这是一个自动提交的时间字段。在django中隐藏模型字段

check_out_time = models.DateTimeField(default = datetime.now() + timedelta(minutes = 60)) 
first_name = models.CharField(max_length = 120) 
last_name = models.CharField(max_length = 120) 

我想在表单中只显示名字和姓氏,而不是结账时间。请帮助我,如何隐藏django中的任何字段?

回答

0

https://docs.djangoproject.com/en/1.7/topics/forms/modelforms/#selecting-the-fields-to-use

class YourForm(forms.ModelForm): 

    class Meta: 
     model = YourModel 
     exclude = ('check_out_time',) 

UPDATE:

如果要有条件地排除现场:

class YourForm(forms.ModelForm): 

    def __init__(self, *args, **kwargs):  
     super(YourForm, self).__init__(*args, **kwargs) 
     if <your logic here>: 
      del self.fields['check_out_time'] 

    class Meta: 
     model = YourModel 
+0

感谢,它的工作。我可以在以后根据某些条件包含该字段吗 – user3887070 2015-03-30 23:45:28

+0

条件排除对我而言不合格。禁止创建没有'fields'属性或'exclude'属性的ModelForm。如果我定义了'__all__',那么我会在'YourForm' – toscanelli 2016-06-09 11:22:41

+0

中找到错误Key'check_out_time'特殊值'__all__'用于指示应该使用* model *中的所有字段。 – mishbah 2016-06-13 10:00:41