我有django queryset排序的问题.
我的模型包含一个名为position(PositiveSmallIntegerField)的字段,我想用它来订购查询结果.
我使用order_by('position'),效果很好.
问题:我的position字段是可空的(null=True, blank=True),因为我不想为我的模型的每50000个实例指定一个位置:(
当某些实例具有NULL"位置"时,order_by将它们返回到列表顶部:我希望它们在最后...
在RAW SQL中,我曾经写过像" IF(position IS NULL or position='', 1, 0)" 这样的东西(参见http://www.shawnolson.net/a/730/mysql-sort-order-with-null.html):是否有可能使用相同的结果Django,没有编写原始SQL?
非常感谢 !
我正面临一个奇怪的问题,使用Django Haystack和ElasticSearch,阻止我索引内容.
ElasticSearch在机器上正常运行:
# curl -X GET 127.0.0.1:9200
{
"status" : 200,
"name" : "White Pilgrim",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.7.4",
"build_hash" : "0d3159b9fc8bc8e367c5c40c09c2a57c0032b32e",
"build_timestamp" : "2015-12-15T11:25:18Z",
"build_snapshot" : false,
"lucene_version" : "4.10.4"
},
"tagline" : "You Know, for Search"
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用Haystack构建索引时:
# python manage.py rebuild_index
Run Code Online (Sandbox Code Playgroud)
我收到一个ProtocolError(('Connection aborted.', error(111, 'Connection refused')))错误:
ERROR:root:Error updating auth using default
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/haystack/management/commands/update_index.py", line 188, in handle_label
self.update_backend(label, using)
File …Run Code Online (Sandbox Code Playgroud) 法恩初学者在这里。
\n我正在尝试解决一个简单的用例,但没有在文档中找到任何解决方案:在 Fyne 中,如何拥有一个 Table 小部件,并将其数据绑定到数据源?
\n换句话说,我们binding.BindStringList 在文档中有,它允许绑定字符串列表\xe2\x80\xa6
data := binding.BindStringList(\n &[]string{"Item 1", "Item 2", "Item 3"},\n)\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\xa6我正在寻找类似的东西,它允许绑定结构列表而不是字符串。例如,待办事项表:
\ntype Todo struct {\n UserID int `json:"userId,omitempty"`\n ID int `json:"id,omitempty"`\n Title string `json:"title,omitempty"`\n Completed bool `json:"completed,omitempty"`\n}\nRun Code Online (Sandbox Code Playgroud)\n如果不可能,对您来说最好的解决方法是什么?
\n好吧,按照安迪的建议,我尝试了这个:
\nvar data []Todo\n\nstringData := `[{"userId":1,"id":1,"title":"delectus aut autem"},{"userId":1,"id":2,"title":"quis ut nam facilis et officia qui"}]`\njson.Unmarshal([]byte(stringData), &data)\n\nvar bindings []binding.DataMap\n\nfor _, todo := range data {\n bindings = append(bindings, binding.BindStruct(&todo))\n}\n\nlist := widget.NewTable(\n func() (int, …Run Code Online (Sandbox Code Playgroud) 我今天来了一个关于Django的设计/架构问题.
我在几个网站上工作(托管在同一台服务器上),这些网站个别需要地理数据(州,城镇等).每个项目都包含应用程序,每个应用程序可能包含带有ForeignKey城镇或州的字段的模型.
为了不重复自己,我不打算建立一个数据库来存储这些城镇和州,并通过Django项目使用它.
Django提供了一种直接的方式,可以在同一个项目中使用多个数据库,在settings.py文件中声明它并编写路由器类来保存读写内容.但就这样,不可能使用如下select_related声明:
job = get_object_or_404(Jobs.objects.select_related('state__town'), user=user)
Run Code Online (Sandbox Code Playgroud)
这种行为对我来说很自然(不可能从头开始在数据库之间进行连接)......
我的问题:
一个快速而肮脏的解决方案是在每个项目数据库中导入所有地理数据(城镇,州......),但它根本不是DRY :(:
python manage.py loaddata geo.json
Run Code Online (Sandbox Code Playgroud)
另一种解决方案可能是建立一个独立的"地理"应用程序,它可以"服务"(我不知道如何)将数据传输到其他项目......实际上,我尝试过GeoDjango,但它看起来真的很复杂,而且它可能不会回答我的问题!
非常感谢您的答案!
我有一个非常简单的问题,我无法找到答案.使用Django staticfiles应用程序,我通过键入以下命令行来调用静态收集例程:python manage.py collectstatic.
我的问题是我有几个服务静态的应用程序+一个包含用户上传文件的媒体目录.Django将所有文件复制到静态目录,包括媒体文件!
我只是希望Django 在我调用时不将用户上传的文件复制到静态目录python manage.py collectstatic.有没有人有想法?试过--ignore但没有成功......
先感谢您.
我是 Go and Bleve 的新手(对不起,如果我问的是琐碎的事情......)。这个搜索引擎似乎非常好,但是在处理搜索结果时我陷入了困境。
假设我们有一个结构:
type Person struct {
Name string `json:"name"`
Bio string `json:"bio"`
}
Run Code Online (Sandbox Code Playgroud)
现在,我们从数据库中提取数据(使用 sqlx lib):
rows := []Person{}
db.Select(&rows, "SELECT * FROM person")
Run Code Online (Sandbox Code Playgroud)
...并将其编入索引:
index.Index, err = bleve.Open("index.bleve")
batch := index.Index.NewBatch()
i := 0
for _, row := range rows {
rowId := fmt.Sprintf("%T_%d", row, row.ID)
batch.Index(rowId, row)
i++
if i > 100 {
index.Index.Batch(batch)
i = 0
}
}
Run Code Online (Sandbox Code Playgroud)
现在我们已经创建了索引。它工作得很好。
使用bleve 命令行实用程序,它可以正确返回数据:
bleve query index.bleve doe
3 matches, showing 1 through …Run Code Online (Sandbox Code Playgroud)