Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/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
Django 如何访问作为模型传递的modelForms字段_Django_Modelform - Fatal编程技术网

Django 如何访问作为模型传递的modelForms字段

Django 如何访问作为模型传递的modelForms字段,django,modelform,Django,Modelform,forms.py views.py的一部分 假设我想在forms.py中为我的班带表单做一些验证 def clean_fieldnameself: 通常你会得到这样的传递参数-self.cleaned\u data.get'field\u name'。所以,如果我尝试获取self.cleaned_数据,从中获取“时间”,一切都很好。但如果我试图获取self.u数据。获取'date',则不会返回任何数据 为什么? 答复 从我提供的帖子中唯一不太清楚的一点是,您必须以self.instance.f

forms.py

views.py的一部分

假设我想在forms.py中为我的班带表单做一些验证

def clean_fieldnameself:

通常你会得到这样的传递参数-self.cleaned\u data.get'field\u name'。所以,如果我尝试获取self.cleaned_数据,从中获取“时间”,一切都很好。但如果我试图获取self.u数据。获取'date',则不会返回任何数据

为什么?

答复

从我提供的帖子中唯一不太清楚的一点是,您必须以self.instance.fieldname的形式访问forms.py中的实例,但不能访问self.cleaned\u data.get'fieldname'。

在您的排除项中:

exclude = ('created','date')

您正在排除日期字段在表单中的可见性。这可能解释了为什么不能访问数据中的日期。尝试从排除元组中删除日期,并在模板中呈现它,以查看它是否显示。

在models.py中,我有一个类Entry1,其字段date=models.DateField。如果我把它设为auto\u now\u add=True,它会自动插入日期,一切正常。如果我在保存表单之前在视图中插入日期,它怎么会不存在呢?当然可以,就像request.POST一样。但如果我不排除日期,我会在表单中得到它,用户必须填写它,这是我不想要的。我只需要手动设置它,正如您在我的视图中所看到的。现在我从“排除”字段中删除了日期。。。我还通过手动设置{{form.fieldname}}等字段将其从模板中排除。。。。所以我去掉了模板中的字段问题。。。。但它仍然感觉像form.date=datetime.dateintyear、intmonth、intday没有给日期字段赋值,我只得到一个值,如果有帮助的话。。。当我尝试在shell中这样填充表单时:data={'band_title':'hello','created':datetime.datetime2011,3,3,'datetime':datetime.date2011,3,3,'time_from':8,'time_to':9}-f=BandFormdata | f.cleaned_data我只得到3个参数{'band_title':u'hello',time_to':u'9',time_from':u'8'},而不是5。FU**i am lost:d是否可以在模板中显示日期,但在表单初始化期间初始化所需日期时将其设置为隐藏字段?
if request.method == "POST":
        form = BandForm(request.POST)
        if form.is_valid():
            form = form.save(commit=False)
            if year and month and day:
                form.date = datetime.date(int(year),int(month),int(day))
                form.save()
exclude = ('created','date')