Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python settings.py中的Django DATE_格式忽略格式设置或被覆盖_Python_Django_Django Forms_Django Settings - Fatal编程技术网

Python settings.py中的Django DATE_格式忽略格式设置或被覆盖

Python settings.py中的Django DATE_格式忽略格式设置或被覆盖,python,django,django-forms,django-settings,Python,Django,Django Forms,Django Settings,我正在尝试更改SelectDateWidget的格式。我已经按照包括将USE\u L10N设置为False的步骤进行了操作。我还查看了设置并尝试了多种组合 问题是,无论我如何格式化字符串,“年”下拉列表始终位于左侧,而我希望它位于右侧。即使我指定了2,它也总是格式化为4位数字。但是,我可以通过简单地不指定它来完全删除它 谁能告诉我如何在“日:蛾年”中格式化日期 我正在使用Django 1.6.2 设置.py LANGUAGE_CODE = 'en-us' TIME_ZONE = 'Europe/

我正在尝试更改
SelectDateWidget
的格式。我已经按照包括将
USE\u L10N
设置为
False
的步骤进行了操作。我还查看了设置并尝试了多种组合

问题是,无论我如何格式化字符串,“年”下拉列表始终位于左侧,而我希望它位于右侧。即使我指定了2,它也总是格式化为4位数字。但是,我可以通过简单地不指定它来完全删除它

谁能告诉我如何在“日:蛾年”中格式化日期

我正在使用Django 1.6.2

设置.py

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Europe/Dublin'
USE_I18N = True
USE_L10N = False
USE_TZ = True
class Person(models.Model):

    birthdate = models.DateField(null=True, blank=True) #overwritten in forms.py 
from django.forms import ModelForm
from django.forms.extras import SelectDateWidget

class SurveyFormA(forms.ModelForm):

    birthdate = forms.DateField(widget=extras.SelectDateWidget(), required=False)
这些是我尝试过的一些格式和结果。月(长)=“一月”等

我试图在下面呈现出生日期,这是我使用ModelForm创建的个人模型的一部分

型号.py

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Europe/Dublin'
USE_I18N = True
USE_L10N = False
USE_TZ = True
class Person(models.Model):

    birthdate = models.DateField(null=True, blank=True) #overwritten in forms.py 
from django.forms import ModelForm
from django.forms.extras import SelectDateWidget

class SurveyFormA(forms.ModelForm):

    birthdate = forms.DateField(widget=extras.SelectDateWidget(), required=False)
forms.py

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Europe/Dublin'
USE_I18N = True
USE_L10N = False
USE_TZ = True
class Person(models.Model):

    birthdate = models.DateField(null=True, blank=True) #overwritten in forms.py 
from django.forms import ModelForm
from django.forms.extras import SelectDateWidget

class SurveyFormA(forms.ModelForm):

    birthdate = forms.DateField(widget=extras.SelectDateWidget(), required=False)

SelectDateWidget
将使用
DATE\u格式
,但仅适用于年、月和日的顺序,仅此而已。您可以在小部件代码本身中看到,它不区分
y
y
b
F
,等等:

        elif char in 'Yy':
            output.append('year')
            #if not self.first_select: self.first_select = 'year'
        elif char in 'bEFMmNn':
            output.append('month')
            #if not self.first_select: self.first_select = 'month'
        elif char in 'dj':
            output.append('day')
            #if not self.first_select: self.first_select = 'day'
但在您的例子中,奇怪的是解析似乎正在工作,但显示的却是相反的
jn,Y
应该会给你相反的结果。因此,您应该尝试将
日期\u格式
倒过来。例如:

DATE_FORMAT = 'YNj'
也就是说,你应该看看你的HTML,可能是样式中的某些东西导致了这种情况。A
float:对
可能在什么地方

对于2位数的年份,您可以传递一个参数以显示您想要显示的年份。这可以是一个列表/元组。见:

接受一个可选参数:

年头

在“年份”选择中使用的可选年份列表/元组 盒子。默认值是一个包含当前年份和下一个年份的列表 年

像这样:

birthdate = forms.DateField(widget=extras.SelectDateWidget(years=('15','16','17','18','19')), required=False)

你说得对。导致三个选择选项水平翻转的
float:right
。使用
DATE\u FORMAT='YNj'
可以使所有选择字段保持右侧对齐,同时仍保持正确的顺序。谢谢