标签: django-models

Django数据库查询:如何按日期范围过滤对象?

我在一个模型中有一个字段

class Sample(models.Model):
    date = fields.DateField(auto_now=False)
Run Code Online (Sandbox Code Playgroud)

现在,我需要按数据范围过滤对象,例如,2011年1月1日到2011年1月31日之间的所有对象?

谢谢你的帮助!

python django django-models django-queryset

213
推荐指数
6
解决办法
24万
查看次数

如何在Django中创建一个slug?

我正在尝试在Django中创建一个SlugField.

我创建了这个简单的模型:

from django.db import models

class Test(models.Model):
    q = models.CharField(max_length=30)
    s = models.SlugField()
Run Code Online (Sandbox Code Playgroud)

然后我这样做:

>>> from mysite.books.models import Test
>>> t=Test(q="aa a a a", s="b b b b")
>>> t.s
'b b b b'
>>> t.save()
>>> t.s
'b b b b'
Run Code Online (Sandbox Code Playgroud)

我在期待bbbb

python django django-models slug

210
推荐指数
7
解决办法
12万
查看次数

Django - 如何使用South重命名模型字段?

我想更改模型中特定字段的名称:

class Foo(models.Model):
    name = models.CharField()
    rel  = models.ForeignKey(Bar)
Run Code Online (Sandbox Code Playgroud)

应改为:

class Foo(models.Model):
    full_name     = models.CharField()
    odd_relation  = models.ForeignKey(Bar)
Run Code Online (Sandbox Code Playgroud)

使用南方最简单的方法是什么?

python django django-models django-south

208
推荐指数
5
解决办法
4万
查看次数

以编程方式将图像保存到Django ImageField

好吧,我已经尝试了几乎所有的东西,我无法让它工作.

  • 我有一个带有ImageField的Django模型
  • 我有通过HTTP下载图像的代码(测试和工作)
  • 图像直接保存到'upload_to'文件夹中(upload_to是在ImageField上设置的文件)
  • 我需要做的就是将现有的图像文件路径与ImageField相关联

我已经用6种不同的方式编写了这段代码.

我遇到的问题是我写的所有代码都会导致以下行为:(1)Django将生成第二个文件,(2)重命名新文件,在文件末尾添加_ name,然后(3)不传输任何数据,基本上是一个空的重命名文件.'upload_to'路径中剩下的是2个文件,一个是实际图像,一个是图像的名称,但是是空的,当然ImageField路径设置为Django尝试创建的空文件.

如果不清楚,我会试着说明:

## Image generation code runs.... 
/Upload
     generated_image.jpg     4kb

## Attempt to set the ImageField path...
/Upload
     generated_image.jpg     4kb
     generated_image_.jpg    0kb

ImageField.Path = /Upload/generated_image_.jpg
Run Code Online (Sandbox Code Playgroud)

如果Django没有尝试重新存储文件,我怎么能这样做呢?我真正喜欢的是这个效果......

model.ImageField.path = generated_image_path
Run Code Online (Sandbox Code Playgroud)

......但当然这不起作用.

是的,我已经经历这里的其他问题,如走了这一个,以及对Django的DOC 文件

更新 进一步测试后,它只在Windows Server上的Apache下运行时才会出现此问题.在XP上的"runserver"下运行时,它不会执行此行为.

我很难过.

这是在XP上成功运行的代码...

f = open(thumb_path, 'r')
model.thumbnail = File(f)
model.save()
Run Code Online (Sandbox Code Playgroud)

python django django-models

192
推荐指数
9
解决办法
12万
查看次数

从django中的查询集中获取第一个对象的最快方法?

通常我发现自己想要从Django中的查询集中获取第一个对象,或者None如果没有则返回.有很多方法可以做到这一切都有效.但我想知道哪个是性能最好的.

qs = MyModel.objects.filter(blah = blah)
if qs.count() > 0:
    return qs[0]
else:
    return None
Run Code Online (Sandbox Code Playgroud)

这会导致两次数据库调用吗?这似乎很浪费.这更快吗?

qs = MyModel.objects.filter(blah = blah)
if len(qs) > 0:
    return qs[0]
else:
    return None
Run Code Online (Sandbox Code Playgroud)

另一种选择是:

qs = MyModel.objects.filter(blah = blah)
try:
    return qs[0]
except IndexError:
    return None
Run Code Online (Sandbox Code Playgroud)

这会生成一个数据库调用,这很好.但是需要在很多时候创建一个异常对象,当你真正需要的只是一个简单的if-test时,这是一个非常耗费内存的事情.

如何只使用一次数据库调用并且不使用异常对象搅拌内存?

python django performance django-models

177
推荐指数
7
解决办法
17万
查看次数

Django:获取模型字段列表?

我已经定义了一个User(最终)继承自的类models.Model.我想获得为此模型定义的所有字段的列表.例如,phone_number = CharField(max_length=20).基本上,我想要检索从Field类继承的任何东西.

我以为我可以通过利用来检索这些inspect.getmembers(model),但它返回的列表不包含任何这些字段.看起来Django已经掌握了这个类,并添加了所有的魔法属性,并删除了实际定义的内容.那么......我怎样才能获得这些领域?它们可能具有为自己的内部目的检索它们的功能吗?

django django-models

172
推荐指数
12
解决办法
13万
查看次数

Django模型 - 不区分大小写的查询/过滤

如何在Django中查询/过滤并忽略我的查询字符串的情况?

我有类似的东西并且喜欢忽略以下情况my_parameter:

MyClass.objects.filter(name=my_parameter)
Run Code Online (Sandbox Code Playgroud)

database django filtering django-models

172
推荐指数
1
解决办法
7万
查看次数

如何使用Django的ORM提取随机记录?

我有一个模特代表我在网站上出现的画作.在主要网页上,我想展示一些:最新的,大多数时间没有访问过的,最受欢迎的一个和随机的一个.

我正在使用Django 1.0.2.

虽然前三个使用django模型很容易拉,但最后一个(随机)给我带来了一些麻烦.我可以在我的视图中对它进行编码,如下所示:

number_of_records = models.Painting.objects.count()
random_index = int(random.random()*number_of_records)+1
random_paint = models.Painting.get(pk = random_index)
Run Code Online (Sandbox Code Playgroud)

在我看来,它看起来并不像我想要的东西 - 这完全是数据库抽象的一部分,应该在模型中.此外,在这里我需要处理删除的记录(然后所有记录的数量不会覆盖我所有可能的键值),可能还有很多其他的东西.

我可以做任何其他选择,最好以某种方式在模型抽象中?

python django django-models

169
推荐指数
6
解决办法
7万
查看次数

Django:为什么有些模型字段会相互冲突?

我想创建一个包含2个用户链接的对象.例如:

class GameClaim(models.Model):
    target = models.ForeignKey(User)
    claimer = models.ForeignKey(User)
    isAccepted = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)

但是在运行服务器时出现以下错误:

  • 字段'target'的访问者与相关字段'User.gameclaim_set'发生冲突.将related_name参数添加到'target'的定义中.

  • 字段'claimer'的访问者与相关字段'User.gameclaim_set'发生冲突.将related_name参数添加到'claimer'的定义中.

你能解释一下为什么我会收到错误以及如何修复它们吗?

python django django-models

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

django orm,如何查看(或记录)执行的查询?

有没有办法可以打印Django ORM生成的查询?

假设我执行以下语句: Model.objects.filter(name='test')

如何查看生成的SQL查询?

django django-models django-orm

158
推荐指数
5
解决办法
8万
查看次数