我有一个模特:
class MyModel(models.Model):
creation_date = models.DateTimeField(auto_now_add = True, editable=False)
class Meta:
get_latest_by = 'creation_date'
Run Code Online (Sandbox Code Playgroud)
我在视图中有一个查询,它执行以下操作:
instances = MyModel.objects.all().order_by('creation_date')
Run Code Online (Sandbox Code Playgroud)
然后我想instances.latest(),但它不会给我正确的实例,事实上它给了我第一个实例.只有当我将order_by设置为-creation_date或从查询中实际删除order_by 时才.latest()会给我正确的实例.当我使用python manage.py shell而不是在视图中手动测试时,也会发生这种情况.
所以我现在所做的是在模型的Meta我已经列出order_by = ['creation_date']并且在查询中没有使用它,这是有效的.
我本来希望.latest()总是根据(日期)(时间)字段返回最新的实例.有人能告诉我,.latest()当你order_by在查询中使用时,行为奇怪吗?
我正在使用Django的pre_save信号来实现auto_now_add.互联网上有很多关于为什么你应该或不应该自己实现它的讨论.我不赞赏对此的评论.我是否应该重写保存功能(我有很多使用auto_now_add的模型,所以使用信号是有意义的).
我的问题是:
我想检查实例是否已创建或更新.根据互联网上的一些消息来源,可以通过测试是否kwargs['created']为True 来完成.但是'created',kwargs即使实例是新创建的,也不会出现在我的脑中.我只是想知道它是否曾经存在过,或者它已经神奇地消失了.我知道我也可以测试是否kwargs['instance'].id已设置(这实际上对我有用),但我想知道kwargs ['created']是否仍然存在.
我想在全球范围内(通过我的整个网站,管理和前端)调整日期的方式和时间显示我的喜好,但我无法弄清楚是怎么回事,在settings.py的DATE_FORMAT,DATETIME_FORMAT和TIME_FORMAT变量.
在这个问题中它说明了设置被忽略了.问题是超过一年了.在Django文档中,它说它们可以在你拥有USE_L10N = True并且显然在Django 1.2中有所改变时使用.根据这个,但可能有一个错误.
我目前正在使用Django 1.2,当我有USE_L10N = True它时只是忽略settings.py中的日期(时间)格式.当我拥有USE_L10N = False它似乎也忽略了它们.
有没有办法全局定制日期和时间显示?或者我应该创建自己的自定义格式文件,正如Karen在Django用户Google Group帖子中所建议的那样?
我一直在尝试安装配置了以下设置的软件包:
setup(
packages=find_packages(),
include_package_data=True,
install_requires=[
'Django==1.5.1',
'xhtml2pdf',
],
dependency_links=[
'https://github.com/chrisglass/xhtml2pdf/zipball/28d12fcaafc4c47b13f1f6f42c2bfb73f90cc947#egg=xhtml2pdf',
],
)
Run Code Online (Sandbox Code Playgroud)
但是它会从PyPi安装XHTML2PDF包,而不是使用指定的链接.根据输出(我运行安装使用pip install -vvv package.tar.gz),它可能无法从链接解析版本(// 1在代码中),或者我没有指定正确的项目名称(// 2在代码中):
Downloading/unpacking xhtml2pdf (from mypackage==1.3)
Getting page https://pypi.python.org/simple/xhtml2pdf/
URLs to search for versions for xhtml2pdf (from mypackage==1.3):
* https://pypi.python.org/simple/xhtml2pdf/
* https://github.com/chrisglass/xhtml2pdf/zipball/28d12fcaafc4c47b13f1f6f42c2bfb73f90cc947#egg=xhtml2pdf
Getting page https://github.com/chrisglass/xhtml2pdf/zipball/28d12fcaafc4c47b13f1f6f42c2bfb73f90cc947
Analyzing links from page https://pypi.python.org/simple/xhtml2pdf/
Found link https://pypi.python.org/packages/source/x/xhtml2pdf/xhtml2pdf-0.0.1.tar.gz#md5=9f83a2bcb67858aca9e058761f3bea7b (from https://pypi.python.org/simple/xhtml2pdf/), version: 0.0.1
Found link https://pypi.python.org/packages/source/x/xhtml2pdf/xhtml2pdf-0.0.2.tar.gz#md5=d640ccb9470942fd2e6d3ae740c27dc1 (from https://pypi.python.org/simple/xhtml2pdf/), version: 0.0.2
Found link https://pypi.python.org/packages/source/x/xhtml2pdf/xhtml2pdf-0.0.1.zip#md5=4ad41c845735ae14da99085311d84c00 (from https://pypi.python.org/simple/xhtml2pdf/), version: 0.0.1
Found link https://pypi.python.org/packages/source/x/xhtml2pdf/xhtml2pdf-0.0.4.zip#md5=5f035cd6532bef99b7d35054caaa6ef7 (from https://pypi.python.org/simple/xhtml2pdf/), version: 0.0.4 …Run Code Online (Sandbox Code Playgroud) 在视图的模板中,我想使用字段的名称而不仅仅是值.例如,如果我有这个:
class Test(models.Model):
name = models.CharField(max_length=2, verbose_name = 'Your name')
age = models.PositiveSmallIntegerField(max_length=3)
Run Code Online (Sandbox Code Playgroud)
我希望能够执行{{name.get_field_name_display}},如果指定了该字段,将导致字段名称或详细名称; 就像它在管理员和表单中完成的方式一样.想象一下在模板中使用它:
{{name.get_field_name_display}}: {{name}}.
{{age.get_field_name_display}}: {{age}}.
Run Code Online (Sandbox Code Playgroud)
这将导致,例如:
你的名字:约翰.
年龄:16岁.
其中'您的名字'是字段详细名称,'Age'是字段名称,'John'和16是值.
谁能告诉我这是否可能以及如何完成?
使用django-tinymce,我之前已经成功将TinyMCE嵌入了Admin中。但是,以前端形式嵌入它似乎对我不起作用。
我有一个表格是modelForm。它不会添加任何额外的字段(“ comment”和“ statement”是唯一使用的字段,它们存在于模型中)。在textarea字段中,我想使用TinyMCE的那种形式的“ comment”。我尝试了以下方法:
class EntryForm(forms.ModelForm):
comment = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}, mce_attrs=TINYMCE_USER_CONFIG))
class Meta:
model = Entry
fields = ['statement','comment',]
Run Code Online (Sandbox Code Playgroud)
和
class EntryForm(forms.ModelForm):
class Meta:
model = Entry
fields = ['statement','comment',]
def __init__(self, *args, **kwargs):
super(EntryForm, self).__init__(*args, **kwargs)
self.fields['comment'].widget = TinyMCE(attrs={'cols': 80, 'rows': 15}, mce_attrs=TINYMCE_USER_CONFIG,)
Run Code Online (Sandbox Code Playgroud)
和
class EntryForm(forms.ModelForm):
class Meta:
model = Entry
fields = ['statement','comment',]
class Media:
js = ('/media/tinymce/jscripts/tiny_mce/tiny_mce.js',
'/sitemedia/js/tinymce_setup.js',)
Run Code Online (Sandbox Code Playgroud)
在HEAD我放置的html标签中{{ form.media }}(form在视图和模板中调用了表单)。我还使用Grappelli和Filebrowser进行管理。
有人可以解释一下我所缺少的内容或使其工作的过程吗?非常感谢!
django ×5
python ×3
templates ×2
date ×1
distribute ×1
field ×1
kwargs ×1
model ×1
settings ×1
setuptools ×1
sql-order-by ×1
time ×1
tinymce ×1