在一次技术采访中,一个发问者问我一个关于执行查询集的奇怪问题。假设我们有一个配置文件模型,如下所示:
class Profile(models.Model):
user = models.OneToOneField('User').select_related(User)
surname = models.TextField(null=True)
q = Profile.object.all()
or
q = Profile.object.get(id=1)
l = q.filter(active=True)
他问发生了多少次查询执行,当python解释
我曾在django 2.X公司工作过,但我将在我的新项目中使用django3.x。在version2,我应该做外部连接。我使用prefetch_related并过滤了prefetch_related的模型。
在第2版中,如果我使用prefetch_related,就会将其作为单个查询进行查询。但是在第3版中,被多个查询所查询。
如果我只使用连接目标的Q()而不使用prefetch_related,那么它在版本3中可以执行单个查询。
from django.db import models
from django.db.models import Q
from django.db.models
我使用django ORM的exact()方法仅查询一组模型中选定的字段,以节省RAM。我不能使用defer()或only(),因为我使用的ORM管理器有一些限制(它不是默认的)。
下面的代码工作正常,没有错误:
q1 = Model.custom_manager.all().extra(select={'field1':'field1'})
# I only want one field from this model
但是,当我对q1查询集进行jsonify时,我得到了模型的每个字段。所以extra()肯定没有起作用,或者我做错了什么?
print Sa
我一直在尝试“动态”定义查询的偏移量。
但是在执行这个查询时,我总是会得到一个You have an error in your SQL syntax;
当我用一个数字来重置子查询时,它确实工作得很好。具有此形状的查询中是否存在错误?
SELECT LengthOfStay
FROM table1
LIMIT (SELECT CAST(COUNT(DISTINCT(LengthOfStay)) / 2 AS SIGNED) FROM table1 t1), 2;
Ps。我对它进行了强制转换,这样就可以确保它是一个整数。
我正在构建功能,允许用户从我的角度前端的查询生成器组件中保存一组过滤器。我也在使用django-过滤器包来支持我的应用程序中的大部分搜索能力。
假设我有一个名为MyModel的模型(包含一个FK字段“ViewsSet”)和一个ViewsSet,其中我指定了filterset_class = MyModeFilter
from django_filters import rest_framework as filters
class MyModelFilter(filters.Filterset):
category_in = filters.BaseCSVFilter(field_
给定带有标题字符串的数据模型,例如:
class DVD(models.Model):
title = models.CharField(max_length=100)
class DVDAdmin(admin.ModelAdmin):
ordering = ('title',)
sample_titles = {"A Fish Called Wanda", "The Good, the Bad, and the Unsorted",
"A River Runs Upstream"
from django.db.models import Q
from .models import Model
qs = Model.objects.filter(Q(field_1=value1)&Q(field_2=value2)) 我知道如何形成query_set,但是如何将它与前端动态链接,这样我就可以知道用户选择了哪个过滤器选项?
我试图让用户删除和编辑他们创建的帖子。有人告诉我"Post.user必须是一个对象实例,你写的东西是不正确的。“但我仍然是django的新手,我想知道做这件事的步骤,因为我在一些帮助下创建了这个项目。
这是我的模型
from django.db import models
from django.db.models import Count, QuerySet, F
from django.utils import timezone
from django.conf import settings
fro
我有一个in列表( list ),我需要在Django中查询和过滤(使用和)。我想使用类似于下面的示例2的内容,但是它给出了错误的结果0。模型简单,很多产品都可以有很多标签。例2有什么问题?
正确结果
示例1:
q = Product.objects.all()
for id in _list_of_ids:
q.filter(tags__id=id)
示例2:
不正确的结果,但似乎更好的(edited for brevity) ..。
for id in _list_of_ids:
q = Q(tags__
我想将查询集条件保存到DB中以供重用。
所以,如果我有这样的查询:
Client.objects.filter(state='AL')
# I'm simplifying the problem for readability. In reality I could have
# a very complex queryset, with multiple filters, excludes and even Q() objects.
我不想将查询集的结果(即具有匹配‘AL’的状态字段的单个客户端记录)保存到DB;而是保存查询集本身(即过滤客户端模型时使用的标准)
我遇到了一个动态返回多行的问题。
我有一个活动记录查询,需要从同一个表中返回多个行。
//this will be a dynamic array of ids
$array = array('01','02','03');
//i need to have other where conditionals as well
$cond['userlevel'] = 5;
//then add the array of ids to the conditionals array
$cond['id
如果我有一个搜索模块,它有:搜索框,下拉列表1,下拉列表2。
我有一个这样的查询:
SELECT * FROM MY_TABLE where q1 = 'searchBox' AND q2 = 'dropdown1' AND q3 = 'dropdown2'
如何根据用户筛选器使查询动态化,因此如果用户只填写搜索框,则查询将为:
SELECT * FROM MY_TABLE where q1 = 'searchBox'
如果用户填写搜索框和dropdown1,则查询将为:
SELECT * FROM MY_TABLE where
我使用以下代码动态过滤数据(我使用MySQL作为DB引擎):
var filter = string.Empty;
if (!string.IsNullOrWhiteSpace(filterNumber))
{
filter = "t.Number LIKE :filterNumber";
}
var query = string.Format("SELECT t FROM Table t WHERE 1=1 AND {0} ORDER BY {1} {2}", filter, orderBy, orderDirection);
var q = Sess
我们如何在django中呈现像这样的sql查询?
select * from question LEFT JOIN (select * from question_solved where username = 'ashu'
) AS result on question.q_id = result.q_id
我试着单独执行查询,
Q= question_solved.objects.filter(username='ashu')
Y= Question.objects.filter(q__q_id = Question.q_id)
但它给了我错误
djan