首页 > 解决方案 > Django - 获取 html 输入标签中的日期值

问题描述

我正在尝试将日期设置为表单中日期输入的值。但是,正如您可能已经猜到的那样,它不起作用。
这是我的模板中的内容:

<form method="POST">
{% csrf_token %}

<label for="address">Address:</label>
<textarea name="address">{{user.address}}</textarea>
<label for="DOB">DOB:</label>
<input type="date" name="DOB" value="{{user.dob|date:'Y-m-d'}}">    
<button type="submit">Submit</button>
<button type="reset">Reset</button>
<a href="{% url 'view_profile' %}">cancel</a>

这是我的模型:

sys_id = models.AutoField(primary_key=True, blank=True)
email = models.EmailField(
    verbose_name='email address',
    max_length=255,
    unique=True,
)
first_name = models.CharField(max_length=50,blank=True,null=True)
last_name = models.CharField(max_length=50,blank=True,null=True)
address = models.TextField(max_length=300,blank=True,null=True)
DOB = models.DateField('Date of Birth', blank=True, null=True)
DOJ = models.DateTimeField(auto_now=True)
active = models.BooleanField(default=True)
staff = models.BooleanField(default=False) # a admin user; non super-user
admin = models.BooleanField(default=False)

这是我的表格:

class EditProfileForm(UserChangeForm):
class Meta:
    model = User
    fields = ('address','DOB','password')

这是我的观点:

def edit_profile(request):
if request.method == 'POST':
    user_form = EditProfileForm(request.POST or None,instance=request.user)
    if user_form.is_valid(): 
        user_form.save()
        return redirect('view_profile')
else:
    user_form = EditProfileForm(request.POST or None,instance=request.user)
return render(request,'edit_profile.html',{'user_form':user_form,})

我有 2 个问题
1:当我编辑我的个人资料时,无法在我的编辑页面中获取出生日期的值。
2:注册时我无法在表单注册中获取日历,所以我无法告诉用户输入 DOB 的格式,它只是在注册时显示 type = "text"

  <h2>Sign up</h2>
  <form  method="post">
    {% csrf_token %}
    {{ user_form.as_p }}
   <button type="submit">Sign up</button>
  </form>

标签: pythonhtmldjangodjango-models

解决方案


{{user.DOB|date:'Y-m-d'}}

我认为你拼错了单词。


推荐阅读