我的django模型中有一个可选的日期字段:
award_grant_date = models.DateField(null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
当用户将日期字段留空时,将NULL插入DateField,否则插入日期.
但是,如果用户确实在DateField中输入了日期,并且用户在表单中选择了其他一些特定数据,那么我想在DateField中插入NULL.
所以,在我的表单中,我有以下代码:
class AwardGrantDetailsForm(forms.Form):
...
award_grant_date = forms.DateField(
widget=forms.DateInput(attrs={'id':'id_award_grant_date'}),
input_formats=settings.DATE_INPUT_FORMATS,
label=_('Date'),
required=False)
...
elif cd_agdf['award_grant_type'] == 8888 or cd_agdf['award_grant_type'] == 9999:
self.cleaned_data['award_grant_type_description'] = ''
self.cleaned_data['award_grant_date'] = 'NULL' //this is the issue here!
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
[u"'NULL' value has an invalid date format. It must be in YYYY-MM-DD format."]
Run Code Online (Sandbox Code Playgroud)
我似乎无法正确地将语法输入到award_grant_date日期字段中.
我正在使用bootstrap datepicker和django 1.4.
如何编写代码self.cleaned_data ['award_grant_date'] =''插入所需的NULL?我已将models字段设置为null = True,blank = True!
我在我的测试表单上有一个选择列表,我正在尝试使用parsley.js验证.
欧芹验证确实有效,但只有当选择列表的默认值为空值时,除了我需要值为0(零).
因此,当在选择列表中选择/显示零值时,选择列表应为红色,表示存在错误.
当我使用默认值零时,如何让选择列表正确验证?
以下是我的选择列表的示例,其中包含零值:
<select name="availability_type" id="id_availability_type" data-parsley-id="1601" data-parsley-required="true" data-parsley-required-message="You must enter at least one Detail." class="input-xlarge2 standard_input_style parsley-success">
<option value="0"> Do not display Availability</option>
<option value="1">Immediately</option>
<option value="2">1 week</option>
<option value="3">2 weeks</option>
<option value="4">3 weeks</option>
<option value="5">4 weeks</option>
<option value="6">> 4 weeks</option>
</select>
Run Code Online (Sandbox Code Playgroud)
以下是使用空格作为值的代码行:
<option value=" "> Do not display Availability</option>
Run Code Online (Sandbox Code Playgroud) 我有一个 vlog,我可以将 vlog 条目预加载到数据库中,这样当 的日期vlog-published-date小于 的模型字段时now,vlog 条目将自动显示/发布。
Vlog Date Published当日期vlog_published_date大于now(尚未发布)时,如何使字体的 django-admin 列变为红色?
这是我的意思的直观示例,其中now日期为2018 年 1 月 16 日:
这是我的 vlog models.py 代码:
class VlogDetails(models.Model):
....
vlog_date_published = models.DateField(null=False, blank=False, default=datetime.now, help_text='The date the vlog video will be made public.')
....
class Meta:
....
Run Code Online (Sandbox Code Playgroud)
有这个类似的线程,但该线程已有 7 年以上的历史,我希望有关于 django 1.10 和 python 3.5 的最新信息。
我一直在尝试并且没有为DRY bootstrap模式添加换行符.
这是我的超链接模板代码,它将消息发送到模态显示代码:
<a href="{% url achievement_details_delete achievement_detail.id %}" delete-confirm="Are you sure you want to DELETE the selected record? <br /><br />This action will permanently remove the record.">Delete</a>
Run Code Online (Sandbox Code Playgroud)
这是我的jquery bootstrap模态代码:
$(document).ready(function() {
//START: Delete code.
$('a[delete-confirm]').click(function(ev) {
var href = $(this).attr('href');
if (!$('#deleteConfirmModal').length) {
$('body').append('<div id="deleteConfirmModal" class="modal modal-confirm-max-width" role="dialog" aria-labelledby="deleteConfirmLabel" aria-hidden="true"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">X</button><h4 class="modal-title" id="deleteConfirmLabel">{% trans "Delete" %} - {{ resume_details_trans }}</h4></div><div class="modal-body"></div><div class="modal-footer"><button class="btn" data-dismiss="modal" aria-hidden="true">{% trans "Cancel" %}</button> <a class="btn-u btn-u-red" id="deleteConfirmOK" onclick="showProgressAnimation();">{% trans "Delete" %}</a></div></div>'); …Run Code Online (Sandbox Code Playgroud) 我正在使用django 1.7.
当用户输入单引号和/或双引号作为输入的一部分时,显示其输入数据的表单将被破坏.
所以我使用了django的转义标签,它应该很容易处理.
但是,转义标记只是转义双引号.单引号未被转义并且正在破坏测试表单.
这是我的代码示例:
{{ field|escape }}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何克服这个问题.
编辑
这是我的表单字段模板代码(form_fields.html):
<div id="row_{{ field.auto_id }}" class="form-group {% if field.errors %}error{% endif %} {% if hide_row %}hidden{% endif %}">
<label for="{{ field.auto_id }}" class="control-label {{ field.css_classes }}">
{{ field.label }}{% if field.label %}:{% endif %}
</label>
<div class="controls {{ control_classes }}">
{{ field|escape }}
{% if field.errors %}
<span class="help-inline">
<strong>
{% for e in field.errors %}
{{ e }}<br/>
{% endfor %}
</strong>
</span>
{% …Run Code Online (Sandbox Code Playgroud) 我将 Django1.10.5与 python 一起使用3.6。
我有以下模型类:
class PublishedRecordedActivity(models.Model):
published_details = models.ForeignKey(PublishedDetails, null=True, blank=True, on_delete=models.CASCADE)
timestamp_added = models.DateTimeField(auto_now_add=True)
activity_type = models.IntegerField(null=False, blank=False, default=1)
Run Code Online (Sandbox Code Playgroud)
我想计算当月以及过去 6 个月的活动类型(1、2、3 或 4)的记录数。
例如,整个当月(2019 年 4 月)的计数。
一个月前的计数(2019 年 3 月整月)。
两个月前的计数(2019 年 2 月整月)等。
我可以编写计数查询,但我不确定如何为每个整月添加过滤器。
这是我的查询:
test_count = PublishedRecordedActivity.objects.filter(activity_type=1).count
Run Code Online (Sandbox Code Playgroud) 我试图让我的第一个Django项目在Windows上运行,但是我收到一条错误消息:
File "c:\users\[username]\appdata\local\temp\easy_install-pazcre\MySQL_python-1.2.3-py2.7- win32.egg.tmp\MySQLdb\connections.py", line 187, in __init__ mysql_exceptions.OperationalError: (1045, "Access denied for user 'django_user'@'localhost' (using password: YES)")
Run Code Online (Sandbox Code Playgroud)
我从命令行创建了我的数据库:
-- create the database
CREATE DATABASE GlobalXdb CHARACTER SET utf8;
-- create user
CREATE USER 'django_user'@'localhost' IDENTIFIED BY 'thepassword';
-- give user permissions to db
GRANT ALL ON django.* TO 'django_user'@'localhost'
Run Code Online (Sandbox Code Playgroud)
我的settings.py文件包含:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'GlobalXdb', # Or path to database file if using sqlite3.
'USER': …Run Code Online (Sandbox Code Playgroud) 我正在尝试将bootbox.js添加到测试页面。
目前,当我在触发引导框的超链接中包含 href 标签时,无论我单击什么确认按钮(取消或确定),都会触发 href。
如何将 href 标签包含到 bootbox js 代码中,以便仅在用户选择 OK 确认选项时触发?我尝试了几次尝试,但都无济于事。
这是带有 href 标签的超链接:
<a id="id_customized_details_duplicate" href="{% url customized_details_duplicate customized_detail.id %}">Duplicate</a>
Run Code Online (Sandbox Code Playgroud)
这是我的书箱js代码:
$(document).ready(function(){
$('#id_customized_details_duplicate').on('click', function(){
bootbox.confirm("Are you sure?", function(result) {
if (result) {
//include the href duplication link here?;
//showProgressAnimation();
alert('OK SELECTED');
} else {
alert('CANCEL SELECTED');
}
});
});
});
Run Code Online (Sandbox Code Playgroud) 我有一个bootstrap模态确认,我想显示当前选中的html选择列表的值以及传入变量的值.
我问了这个问题并在这里得到了一个很好的答案,关于在同一个html选择列表中显示两个值,用于JavaScript确认弹出窗口.但是,我现在需要用bootstrap模式替换JavaScript确认.
这是html选择列表:
<select name="language_code" id="id_language_code">
<option value="ar">Arabic - ???????</option>
<option value="bg">Bulgarian - ?????????</option>
<option value="zh-CN">Chinese (Simplified) - ?? (??)?</option>
<option value="en" selected="selected">English (US)</option>
<option value="fr-CA">French (Canada) - français (Canada)?</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我可以使用以下代码在引导模式上显示两个语言值:
$( "#submit_buttonA" ).attr('update-confirm', 'Are you sure you want to change the language of the website from ' + $('#id_language_code option[value=' + '{{ user.get_profile.language_preference }}' + ']').text() + ' to ' + $('#id_language_code option:selected').text() + '?');
Run Code Online (Sandbox Code Playgroud)
上面的代码行总是在bootstrap模式上返回第二语言值$('#id_language_code选项:selected').text()(标记为selected ="selected")为英语(US),即使用户有选定保加利亚语 - Български.
我已经阅读了这篇文章并认为这需要一个JavaScript回调函数,因为引导模式是异步的,而JavaScript …
我在Windows 7上运行python 2.7和django 1.8.11。
添加必要的翻译字符串文字后,我正在尝试翻译我的网站。我已按照docs的指示进行操作。这包括以正确的语言代码安装适用于Windows 7的GNU gettext实用程序和必要的语言环境文件夹/目录。
在虚拟环境和项目根目录的命令提示符下,运行:
django-admin makemessages -l de
Run Code Online (Sandbox Code Playgroud)
我在命令提示符处收到以下错误:
CommandError: Unable to find a locale path to store translations for file fabfile.py
Run Code Online (Sandbox Code Playgroud)
在项目的根目录中,有以下文件,它们是的fabfile.py位置:
我尝试(暂时)fabfile.py从目录中删除。尝试此操作时,运行时收到的错误消息django-admin makemessages -l de是:
CommandError: Unable to find a locale path to store translations for file manage.py
Run Code Online (Sandbox Code Playgroud)
看来该makemessages命令包括根目录中的所有.py和.txt文件。我不确定这是否正确。
运行makemessages命令时,如何不在项目的根目录中包含.py和.txt文件?
我决定使用javascript indexOf来确定列表/数组中是否存在值.这对我有用,直到我意识到我需要在列表中找到完全匹配.
这是我的示例代码:
if (['eu', 'fr-CA', 'lt', 'sv', 'zh-CN', 'zh-TW'].indexOf('fr') > -1) {
Run Code Online (Sandbox Code Playgroud)
上面的代码将'fr'匹配到fr-CA,这对我来说是一个问题,因为我必须与fr完全匹配并且与fr-CA不匹配.
我认为这将是直截了当的,但我搜索了SO和谷歌,并找不到完全匹配的答案.
django ×7
javascript ×4
python ×4
jquery ×3
html ×2
arrays ×1
bootbox ×1
callback ×1
count ×1
datefield ×1
datepicker ×1
django-admin ×1
escaping ×1
forms ×1
html-select ×1
line-breaks ×1
list ×1
modal-dialog ×1
mysql ×1
parsley.js ×1
syncdb ×1
translation ×1
validation ×1