首页 > 解决方案 > 在表单中使用默认的“timezone.now”方法。--- TypeError: __init__() 得到了一个意外的关键字参数 'default'

问题描述

我正在构建一个 BlogApp,我正在开发一个功能,但我遇到了一个错误。我做了,date = forms.DateTimeField(default=timezone.now)但它一直在向我展示:-

TypeError: init () got an unexpected keyword argument 'default'

我想做什么

我希望它form field在浏览器中设置现在的默认时间。

表格.py

from django.utils import timezone

class PostForm(forms.ModelForm):
    date = forms.DateTimeField(default=timezone.now)

    class Meta:
        model = BlogPost
        fields = ('post_title','date',)
        widgets = {'post_title': forms.Textarea(attrs={'cols':50})}

模型.py

class BlogPost(models.Model):
    post_owner = models.ForeignKey(User,default='',null=True,on_delete = models.CASCADE)
    post_title = models.CharField(max_length=500,default='')
    date_added = models.DateTimeField(null=True,default=timezone.now)

我试过什么

我也尝试default method过模型,它工作正常但我想做一个Validation Error我不能做的model它只能在 Forms 中做。所以我在表格中做这件事。

我不知道该怎么办。

任何帮助,将不胜感激。

先感谢您。

标签: pythondjangodjango-modelsdjango-forms

解决方案


Django 表单字段不接受default参数。但是,要提供初始值,您可以使用以下initial参数:

date = forms.DateTimeField(initial=timezone.now)

推荐阅读