小编Jac*_*ack的帖子

Codeigniter - 活动记录 - sql - 复杂连接

我有一个从表中检索所有标签的函数:

function global_popular_tags() {
    $this->db->select('tags.*, COUNT(tags.id) AS count');
    $this->db->from('tags');
    $this->db->join('tags_to_work', 'tags.id = tags_to_work.tag_id');
    $this->db->group_by('tags.id');
    $this->db->order_by('count', 'desc'); 
    $query = $this->db->get()->result_array();
    return $query;
}
Run Code Online (Sandbox Code Playgroud)

我有另一张名为'work'的表.'work'表有一个'draft'列,其值为1或0.我希望COUNT(tags.id)考虑具有特定标记的工作是否处于草稿模式(1).

比如,有10件作品被标记为"设计".COUNT将是10.但是这些工作中有2个处于草稿模式,因此COUNT应该是8.如何管理?

php sql activerecord codeigniter

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

django-positions - 使用parent_link的多表模型继承

使用https://github.com/jpwatts/django-positions,

我有一些继承父母的模型,例如:

class ContentItem(models.Model):

    class Meta:
        ordering = ['position']

    content_group = models.ForeignKey(ContentGroup)
    position      = PositionField(collection='content_group', parent_link='contentitem_ptr')

class Text(ContentItem):

    title = models.CharField(max_length=500, unique=False, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

我知道我需要使用parent_link参数(这里是文档).但是当我使用它时出现这个错误:

websites.Text: (models.E015) 'ordering' refers to the non-existent field 'position'.
Run Code Online (Sandbox Code Playgroud)

使用parent_link参数时,就好像该position字段已完全从模型中删除.我尝试了各种字段名称,例如contentitem_ptr_id(链接字段的实际名称),但没有运气.任何可识别的东西我在这里做错了吗?

python django

5
推荐指数
1
解决办法
272
查看次数

使用http身份验证的Django Haystack连接错误

我正在使用Haystack连接并与elasticsearch的安装进行交互.Elasticsearch安装在主Web服务器的不同框中.

我使用nginx在elasticsearch框上设置了HTTP身份验证.这是为了阻止对elasticsearch的未授权访问.

Haystack配置看起来像这样:

HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
        'URL': 'http://USERNAME:PASSWORD@DOMAIN:PORT/',
        'INDEX_NAME': 'haystack',
    },
}
Run Code Online (Sandbox Code Playgroud)

有了这个设置,我得到一个连接错误:

elasticsearch.exceptions.ConnectionError: ConnectionError(('Connection aborted.',
gaierror(-2, 'Name or service not known'))) caused by: ProtocolError(('Connection
aborted.', gaierror(-2, 'Name or service not known')))
Run Code Online (Sandbox Code Playgroud)

如果我关闭HTTP身份验证并相应地更新URL http://DOMAIN:PORT/连接没有问题.

可能是Haystack(或elasticsearch-py(http://www.elasticsearch.org/guide/en/elasticsearch/client/python-api/current/)不允许在URL中使用HTTP身份验证吗?I请注意这是Solr - Solr身份验证的问题(使用Django Haystack)

django http-authentication django-haystack elasticsearch pyelasticsearch

2
推荐指数
1
解决办法
961
查看次数