小编Hey*_*yl1的帖子

使用.order_by()和.latest()的Django查询

我有一个模特:

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在查询中使用时,行为奇怪吗?

python django sql-order-by

39
推荐指数
2
解决办法
7万
查看次数

Django pre_save信号:检查实例是否创建未更新,kwargs ['created'](仍然)是否存在?

我正在使用Django的pre_save信号来实现auto_now_add.互联网上有很多关于为什么你应该或不应该自己实现它的讨论.我不赞赏对此的评论.我是否应该重写保存功能(我有很多使用auto_now_add的模型,所以使用信号是有意义的).

我的问题是:
我想检查实例是否已创建或更新.根据互联网上的一些消息来源,可以通过测试是否kwargs['created']为True 来完成.但是'created',kwargs即使实例是新创建的,也不会出现在我的脑中.我只是想知道它是否曾经存在过,或者它已经神奇地消失了.我知道我也可以测试是否kwargs['instance'].id已设置(这实际上对我有用),但我想知道kwargs ['created']是否仍然存在.

python django kwargs

21
推荐指数
4
解决办法
1万
查看次数

Django的:使用DATE_FORMAT,DATETIME_FORMAT,TIME_FORMAT settings.py中的?

我想在全球范围内(通过我的整个网站,管理和前端)调整日期的方式和时间显示我的喜好,但我无法弄清楚是怎么回事,在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帖子中所建议的那样?

django settings time date

15
推荐指数
3
解决办法
1万
查看次数

Setuptools无法使用dependency_links中的链接

我一直在尝试安装配置了以下设置的软件包:

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)

python setuptools distribute

10
推荐指数
1
解决办法
5391
查看次数

在模板中获取模型字段名称

在视图的模板中,我想使用字段的名称而不仅仅是值.例如,如果我有这个:

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 templates field model

6
推荐指数
1
解决办法
2160
查看次数

Django模板中的TinyMCE

使用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 templates tinymce django-tinymce

4
推荐指数
1
解决办法
4653
查看次数