能向我解释的人之间的区别NPM
,Bower
和Composer
.
他们都是包裹经理 - 对吗?
但什么时候应该使用每一个?
此外,每个人都有一个随附的json文件,这是否存储了您需要的所有软件包,以便可以通过cmd行安装它们?你为什么需要这个档案?
从示例中,您可以看到多个OR查询过滤器:
Article.objects.filter(Q(pk=1) | Q(pk=2) | Q(pk=3))
Run Code Online (Sandbox Code Playgroud)
例如,这会导致:
[<Article: Hello>, <Article: Goodbye>, <Article: Hello and goodbye>]
Run Code Online (Sandbox Code Playgroud)
但是,我想从列表中创建此查询过滤器.怎么做?
例如 [1, 2, 3] -> Article.objects.filter(Q(pk=1) | Q(pk=2) | Q(pk=3))
ActionView :: Template :: Error(PG ::错误:错误:对于SELECT DISTINCT,ORDER BY表达式必须出现在选择列表中
我正在创建一个事件网站,我正在尝试按事件的开始时间对呈现的rsvps进行排序.有很多RSVPS,所以我将它们分组,但我在过去的几天里在排序结果时遇到了很多困难而没有在PG上弹出这个错误.我已经看了一些关于这个主题的先前问题,但我仍然很丢失.我怎样才能让它发挥作用?非常感谢!
@rsvps = Rsvp.where(:voter_id => current_user.following.collect {|f| f["id"]}, :status => 'going').where("start_time > ? AND start_time < ?", Time.now, Time.now + 1.month).order("count_all desc").count(:group => :event_id).collect { |f| f[0] }
<%= render :partial => 'rsvps/rsvp', :collection => Rsvp.where(:event_id => @rsvps).select("DISTINCT(event_id)").order('start_time asc') %>
Run Code Online (Sandbox Code Playgroud) 我想通过使用带注释的值更新queryset中的所有行.
我有一个简单的模型:
class Relation(models.Model):
rating = models.IntegerField(default=0)
class SignRelation(models.Model):
relation = models.ForeignKey(Relation, related_name='sign_relations')
rating = models.IntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)
我想要解释这段代码:
for relation in Relation.objects.annotate(total_rating=Sum('sign_relations__rating')):
relation.rating = relation.total_rating or 0
relation.save()
Run Code Online (Sandbox Code Playgroud)
并使用以下内容更新一个SQL请求:
Relation.objects.update(rating=Sum('sign_relations__rating'))
Run Code Online (Sandbox Code Playgroud)
不起作用:
TypeError: int() argument must be a string or a number, not 'Sum'
Run Code Online (Sandbox Code Playgroud)
要么
Relation.objects.annotate(total_rating=Sum('sign_relations__rating')).update(rating=F('total_rating'))
Run Code Online (Sandbox Code Playgroud)
也不起作用:
DatabaseError: missing FROM-clause entry for table "relations_signrelation"
LINE 1: UPDATE "relations_relation" SET "rating" = SUM("relations_si...
Run Code Online (Sandbox Code Playgroud)
为此可以使用Django的ORM吗?没有关于在文档中一起使用update()和annotate()的信息.
我正在学习带有快速模板引擎的node.js,我正在关注udemy课程"通过构建10个项目来学习node.js",同时在教授运行npm start localhost:3000
开始时讲课时我的弹出错误指示app.use需要中间件功能
我试过匹配代码及其相同.请帮我解决这个错误,我已经被困在这里几个小时尝试了很多编辑,但它不适合我.
当我试图运行'npm start'时弹出以下错误
TypeError:app.use()需要中间件函数
这是app.js代码:
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var expressValidator = require('express-validator');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var bodyParser = require('body-parser');
var multer = require('multer');
var flash = require('connect-flash');
var mongo = require('mongodb');
var mongoose = require('mongoose');
var db = mongoose.connection;
var routes = require('./routes/index');
var users = require('./routes/users');
var …
Run Code Online (Sandbox Code Playgroud) 我正在尝试根据用户输入标签查询数据库.标签的数量可以是0-5,因此我需要动态创建查询.
所以我有一个标签列表,tag_list,我想查询数据库:
design_list = Design.objects.filter(Q(tags__tag__contains = "tag1") and Q(tags__tag__contains = "tag2") and etc. etc. )
Run Code Online (Sandbox Code Playgroud)
我该如何创建此功能?
有没有人有使用PostgreSQL进行OLAP设置,使用多维数据集对数据库等的经验.在使用MySQL for OLAP时遇到了许多特性,是否有理由支持使用PostgreSQL(假设我想要开放)来源路线)?
我有一个基本的Django模型,如:
class Business(models.Model):
name = models.CharField(max_length=200, unique=True)
email = models.EmailField()
phone = models.CharField(max_length=40, blank=True, null=True)
description = models.TextField(max_length=500)
Run Code Online (Sandbox Code Playgroud)
我需要在上面的模型上执行一个复杂的查询,如:
qset = (
Q(name__icontains=query) |
Q(description__icontains=query) |
Q(email__icontains=query)
)
results = Business.objects.filter(qset).distinct()
Run Code Online (Sandbox Code Playgroud)
我尝试了以下使用tastypie没有运气:
def build_filters(self, filters=None):
if filters is None:
filters = {}
orm_filters = super(BusinessResource, self).build_filters(filters)
if('query' in filters):
query = filters['query']
print query
qset = (
Q(name__icontains=query) |
Q(description__icontains=query) |
Q(email__icontains=query)
)
results = Business.objects.filter(qset).distinct()
orm_filters = {'query__icontains': results}
return orm_filters
Run Code Online (Sandbox Code Playgroud)
在课程Meta for tastypie我有过滤设置为:
filtering = { …
Run Code Online (Sandbox Code Playgroud) 我尝试在使用Q对象的过滤器中组合AND和OR.它看起来像| 表现得像一个AND.这与先前的注释有关,该注释在同一查询中运行而不是在子查询中运行.
用Django处理这个问题的正确方法是什么?
models.py
class Type(models.Model):
name = models.CharField(_('name'), max_length=100)
stock = models.BooleanField(_('in stock'), default=True)
hide = models.BooleanField(_('hide'), default=False)
deleted = models.BooleanField(_('deleted'), default=False)
class Item(models.Model):
barcode = models.CharField(_('barcode'), max_length=100, blank=True)
quantity = models.IntegerField(_('quantity'), default=1)
type = models.ForeignKey('Type', related_name='items', verbose_name=_('type'))
Run Code Online (Sandbox Code Playgroud)
views.py
def hire(request):
categories_list = Category.objects.all().order_by('sorting')
types_list = Type.objects.annotate(quantity=Sum('items__quantity')).filter(
Q(hide=False) & Q(deleted=False),
Q(stock=False) | Q(quantity__gte=1))
return render_to_response('equipment/hire.html', {
'categories_list': categories_list,
'types_list': types_list,
}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
产生SQL查询
SELECT "equipment_type"."id" [...] FROM "equipment_type" LEFT OUTER JOIN
"equipment_subcategory" ON ("equipment_type"."subcategory_id" =
"equipment_subcategory"."id") LEFT OUTER JOIN …
Run Code Online (Sandbox Code Playgroud) Django为查询集提供了很好的新annotate()函数.但是,我无法让它在单个查询集中正确处理多个注释.
例如,
tour_list = Tour.objects.all().annotate( Count('tourcomment') ).annotate( Count('history') )
Run Code Online (Sandbox Code Playgroud)
游览可以包含多个tourcomment和历史记录条目.我想知道这次巡演有多少评论和历史条目.所结果的
history__count and tourcomment__count
Run Code Online (Sandbox Code Playgroud)
值不正确.如果只有一个annotate()调用,则该值将是正确的.
这两个人似乎有某种乘法效应LEFT OUTER JOIN
.例如,如果一个巡视有3个历史记录和3个评论,那么9个将是两者的计数值.12个历史记录+ 1个评论= 12个值.1个历史记录+ 0个评论= 1个历史记录,0条评论(这一个恰好返回正确的值).
生成的SQL调用是:
SELECT `testapp_tour`.`id`, `testapp_tour`.`operator_id`, `testapp_tour`.`name`, `testapp_tour`.`region_id`, `testapp_tour`.`description`, `testapp_tour`.`net_price`, `testapp_tour`.`sales_price`, `testapp_tour`.`enabled`, `testapp_tour`.`num_views`, `testapp_tour`.`create_date`, `testapp_tour`.`modify_date`, `testapp_tour`.`image1`, `testapp_tour`.`image2`, `testapp_tour`.`image3`, `testapp_tour`.`image4`, `testapp_tour`.`notes`, `testapp_tour`.`pickup_time`, `testapp_tour`.`dropoff_time`, COUNT(`testapp_tourcomment`.`id`) AS `tourcomment__count`, COUNT(`testapp_history`.`id`) AS `history__count`
FROM `testapp_tour` LEFT OUTER JOIN `testapp_tourcomment` ON (`testapp_tour`.`id` = `testapp_tourcomment`.`tour_id`) LEFT OUTER JOIN `testapp_history` ON (`testapp_tour`.`id` = `testapp_history`.`tour_id`)
GROUP BY `testapp_tour`.`id`
ORDER BY `testapp_tour`.`name` ASC
Run Code Online (Sandbox Code Playgroud)
我尝试将两个查询集的结果组合在一起,这两个查询集包含对annotate()的单个调用,但是它无法正常工作......您无法保证订单将是相同的.它似乎过于复杂和凌乱,所以我一直在寻找更好的东西......
tour_list = Tour.objects.all().filter(operator__user__exact = request.user …
Run Code Online (Sandbox Code Playgroud) django ×6
django-q ×4
python ×3
postgresql ×2
bower ×1
composer-php ×1
cubes ×1
distinct ×1
express ×1
javascript ×1
mean ×1
node.js ×1
npm ×1
olap ×1
ruby ×1
sql ×1
sql-update ×1
tastypie ×1