如何在 Django 中将当前日期设置为输入类型 = 日期形式

2024-03-16

我一直在尝试使表单中的日期字段在呈现时显示当前日期。但我未能找到解决这个问题的正确方法。

请找到下面的代码。

HTML 文件

<form class="form-horizontal" role="form" method = 'POST'>
    {% csrf_token%}
    <h2>New Manufacturer Details</h2>
    <div class="form-group row">
        <label for="createddate" class="col-sm-3 control-label">Created Date</label>
        <div class="col-sm-9">
            <input type="date" id="createddate" name = "createddate" class="form-control" autofocus required="true" value = '{{ createddate }}'>
        </div>
    </div>
    <div class="form-group row">
        <label for="manufname" class="col-sm-3 control-label">Name</label>
        <div class="col-sm-9">
            <input type="text" id="manufname"  name = "manufname" placeholder="Manufacturer Name" class="form-control" autofocus required="true" value = '{{ manufname }}'>
        </div>
    </div>
    <div class="form-group row">
        <label for="manufaddress" class="col-sm-3 control-label">Address</label>
        <div class="col-sm-9">
            <textarea class="form-control" id="manufaddress"  name = "manufaddress" placeholder="Manufacturer Address" rows="3" required="true" value = '{{ manufaddress }}'></textarea>
        </div>
    </div>
    <div class="form-group row">
        <label for="manufcontact" class="col-sm-3 control-label">Contact Name</label>
        <div class="col-sm-9">
            <input type="text" id="manufcontact"  name = "manufcontact" placeholder="Manufacturer POC" class="form-control" autofocus required="true" value = '{{ manufcontact }}'>
        </div>
    </div>
    <div class="form-group row">
        <label for="manufcontactnum" class="col-sm-3 control-label">Contact Number</label>
        <div class="col-sm-9">
            <input type="text" id="manufcontactnum"  name = "manufcontactnum" placeholder="Manufacturer Contact Number" class="form-control" autofocus required="true" value = '{{ manufcontactnum }}'>
        </div>
    </div>
    <div class="form-group row">
        <label for="manufemailid" class="col-sm-3 control-label">Email Id</label>
        <div class="col-sm-9">
            <input type="email" id="manufemailid"  name = "manufemailid" placeholder="Manufacturer Email Id" class="form-control" autofocus required="true" value = '{{ manufemailid }}'>
        </div>
    </div>
    <div class="form-group row">
        <label for="manufgst" class="col-sm-3 control-label">GST No</label>
        <div class="col-sm-9">
            <input type="text" id="manufgst"  name = "manufgst" placeholder="Manufacturer GST Number" class="form-control" autofocus required="true" value = '{{ manufgst }}'>
        </div>
    </div>
    <div class="form-group row">
        <label for="manuflicenseno" class="col-sm-3 control-label">License No</label>
        <div class="col-sm-9">
            <input type="text" id="manuflicenseno"  name = "manuflicenseno" placeholder="Manufacturer License Number" class="form-control" autofocus required="true" value = '{{ manuflicenseno }}'>
        </div>
    </div>
    <div class="form-group row">
        <label for="manufbank" class="col-sm-3 control-label">Bank Details</label>
        <div class="col-sm-9">
            <textarea class="form-control" id="manufbank"  name = "manufbank" placeholder="Manufacturer Bank Details" rows="3" required="true" value = '{{ manufbank }}'></textarea>
        </div>
    </div>
    <div class="col text-center">
        <button type="submit" class="btn btn-primary" id="form-submit">Save</button>
    </div>
</form> <!-- /form -->
<script>
    $("#form-horizontal").validate();
</script>

Views.Py

def createmanufacturer(request):
if request.method == 'POST':
    form = CreateManufacturerForm(request.POST or None)
    if form.is_valid():
        form.save()
    else:
        createddate = request.POST['createddate']
        manufname = request.POST['manufname']
        manufaddress = request.POST['manufaddress']
        manufcontact = request.POST['manufcontact']
        manufcontactnum = request.POST['manufcontactnum']
        manufemailid = request.POST['manufemailid']
        manufgst = request.POST['manufgst']
        manuflicenseno = request.POST['manuflicenseno']
        manufbank = request.POST['manufbank']
        messages.success(request, ('There was an error in your form! Please try again...'))
        return render(request, 'screens/createmanufacturer.html', {
                'createddate' : createddate,
                'manufname' : manufname,
                'manufaddress' : manufaddress,
                'manufcontact' : manufcontact,
                'manufcontactnum' : manufcontactnum,
                'manufemailid' : manufemailid,
                'manufgst' : manufgst,                  
                'manuflicenseno' : manuflicenseno,
                'manufbank' : manufbank,
            })
    messages.success(request, ('Manufacturer Details have been submitted successfully'))
    return redirect("screens:testpage")
else:
    form = CreateManufacturerForm()
    return render(
        request = request,
        template_name = 'screens/createmanufacturer.html',
        context = {'form' : form}
        )

forms.py

class CreateManufacturerForm(forms.ModelForm):

def __init__(self, *args, **kwargs):
    super(CreateManufacturerForm, self).__init__(*args, **kwargs)
    self.fields['createddate'].initial = date.today

class Meta:
    model = Manufacturer
    #createddate = forms.DateField(initial=date.today)
    fields = ['createddate', 
              'manufname', 
              'manufaddress', 
              'manufcontact', 
              'manufcontactnum',
              'manufemailid',
              'manufgst',
              'manuflicenseno',
              'manufbank']

模型.py

class Manufacturer(models.Model):
createddate = models.DateField()
manufname = models.CharField(max_length = 255)
manufaddress = models.TextField()
manufcontact = models.CharField(max_length = 255)
manufcontactnum = models.CharField(max_length = 25)
manufemailid = models.EmailField(max_length = 200)
manufgst = models.CharField(max_length = 255)
manuflicenseno = models.CharField(max_length = 255)
manufbank = models.TextField()
manufcode = models.CharField(max_length = 255, primary_key=True, editable=False)

def __str__(self):
    return self.manufname

现在,表单呈现时什么也没有发生。我想要的是创建日期中的日期应设置为今天的日期。然而,用户可以保持原样或者可以选择他/她选择的日期。但要求是日期字段应预先填充当前日期。

请在下面找到网络表格的屏幕截图。

Web Form https://i.stack.imgur.com/uM6k5.jpg


要保存当前使用 auto_now=True

类 DateField(auto_now=False, auto_now_add=False, **选项)¶ 日期,在 Python 中由 datetime.date 实例表示。有一些额外的可选参数:

日期字段.auto_now¶ 每次保存对象时自动将该字段设置为现在。对于“上次修改”时间戳很有用。请注意,始终使用当前日期;它不仅仅是您可以覆盖的默认值

要在表单中显示当前日期,请使用:

form = CreateManufacturerForm(initial={'createddate': datetime.now()})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Django 中将当前日期设置为输入类型 = 日期形式 的相关文章

随机推荐