使用 jquery datepicker 渲染 django ModelForm

Posted

技术标签:

【中文标题】使用 jquery datepicker 渲染 django ModelForm【英文标题】:rendering django ModelForm with jquery datepicker 【发布时间】:2016-08-14 07:20:47 【问题描述】:

我正在尝试 的每个人,现在知道该怎么做了吗?

models.py

....
class ProductsTbl(models.Model):
    model_number = models.CharField(max_length=255, blank=True, null=True)
    name = models.CharField(max_length=255, blank=True, null=True)
    material = models.TextField(blank=True, null=True)
    release = models.DateTimeField(blank=True, null=True)
    ...       

forms.py

from django import forms
from django.forms import ModelForm
from .models import ProductsTbl,Upload


class ProductsTblForm(ModelForm):
    class Meta:
        model = ProductsTbl
        fields = ('model_number','name','feature', 'material','release',)

edit_thing.html

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script>
  $(function() 
    $( "#datepicker" ).datepicker( dateFormat: 'yy-mm-dd' );


  );
  </script>
% extends 'base.html' % % block title %
Edit  thing.name  -  block.super  % endblock title %
% block content %
<h1>Edit " thing.name "</h1>
<form role="form" action="" method="post">
% csrf_token %
 form.as_p 
<br>
<button type="submit">Submit</button>
<a href="% url 'edit_thing_uploads' slug=thing.slug %"> Edit images</a>
</form>
% endblock %

我想我必须在forms.py中做一些事情,,,让

发布

具有日期选择器功能,according to the link here

现在只是一个普通的 html

【问题讨论】:

Release 输入文本部分需要 datepicker ,,我想必须在 forms.py 中做一些事情,,,现在只是纯 html 没有 datepicker ,,,. 就像这里的链接 ***.com/a/16356818/5678590 但我不知道如何在我的 forms.py 中进行操作 【参考方案1】:

在下面的代码行中,#datepicker 指的是要应用日期选择器的元素的 id,在这种情况下不会是 datepicker,因为它将是 django 提供的默认 id,我猜它应该类似于#id_release,但您必须检查输入元素以找出它应该是什么

 $( "#datepicker" ).datepicker( dateFormat: 'yy-mm-dd' );

Django 默认为字段创建 id,因为 auto_id

id 属性值是通过将 id_ 附加到表单字段名称来生成的。但是,如果您想更改 id 约定或完全删除 HTML id 属性和标签,此行为是可配置的。

【讨论】:

在纯 html 中我必须把 ,,, 但是 django-form 只是在 html 中渲染 form.as_p ,,所以我想我必须在 forms.py 中添加一些代码 @CcL - 我添加了一个文档链接,它解释了 django 如何创建您根本不必在纯 html 中编写的 id,您只需要将脚本应用于正确的元素。 谢谢,我在edit_thing.html中将$("#datepicker")改成$("#id_release")后就可以了

以上是关于使用 jquery datepicker 渲染 django ModelForm的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Datepicker日期控件

vuejs渲染html更改后如何运行js代码

jquery ui datepicker怎么设置默认日期

jquery datepicker和asp.net c#空值

Laravel:在保存到数据库之前从 jQuery UI Datepicker 将 m/d/Y 转换为 Y-m-d

altFormat 在 jQuery datepicker 输入字段中不起作用