我曾在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进行过多的查询,但我无法使其适用于具有继承的模型。
问题是,当我使用继承遍历模型时,模型实例不会被缓存,并且会发出SQL查询。
我不确定这是Django的bug,还是我误用了它。
下面是我的代码:
models.py:
class ParentBase(models.Model): pass
class Parent(models.Model): pass
class ParentWithBase(ParentBase): pass
class Child(models.Model):
parent = models.ForeignKey(
我正在创建Django模型,并且在指定一个ManyToMany关系时遇到了一个问题,以便在数据库中创建一个连接表。我想加入的两位模特都是这样的:
class Host(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio_information = models.ForeignKey(Bio, on_delete=models.CASCADE)
class Team(models.Model):
name = models.CharField(max_length=
我有一个相当简单的模型,与另一个模型有多对多的关系。rom django.db导入模型
class MechanismReference(models.Model):
reference = models.TextField(help_text=u'References to support the target information like PMID, KEGGID,etc.')
reference_type = models.CharField(max_length=10, blank=True,
我想在django中使用这个查询,我已经尝试并阅读了django文档,但我仍然不能理解它
Sql to QuerySet Django
SELECT * FROM movie as m INNER JOIN similarity as s ON m.`movie_id` = s.first_movie WHERE `movie_id` = 1 ORDER BY `s`.`similarity_score` DESC
这是我的模型
from django.db import models
# Create your models here.
class Movie(models.Model):
我只是很困惑。我正在我的django应用程序中尝试实现一个教科书上的prefect_related案例,但是它根本行不通。以下是相关的模型:
class CanUseUnit(models.Model):
objects = UnitManager()
ingredient = models.ForeignKey('Ingredient', db_column='ingredient', related_name='useable_units')
unit = models.ForeignKey('Unit', r
考虑以下模式:
# models.py
from django.db import models
class Tag(models.Model):
name = models.CharField(max_length=40)
number_of_publications = models.PositiveIntegerField(default=0)
def __str__(self):
return self.name
class Publication(models.Model):
name = models.CharField(ma
我有一个REST服务(项目使用和),它提供来自MSSQL数据库的数据。其中一个存储在DB中的模型是invcoies,如下所示:
class Invoice(models.Model):
id = models.IntegerField(primary_key=True)
customer = models.ForeignKey('project_models.Customer', on_delete=models.CASCADE,related_name='invoices')
material = models.ForeignKey('
我试图从查询集中显示django模板中的M2M字段的一个属性。
class Reservation(models.Model):
hotel = models.ForeignField(Hotel)
rooms = models.ManyToManyField(Room, through='ReservationRoom')
class Room(models.Model):
number = models.IntegerField(default=0)
class ReservationRoom(models.Model):
reserva
这些都是很多模型
class FacultyMember(models.Model):
# some attributes
class Publication(models.Model):
# some attributes
author = models.ManyToManyField(FacultyMember, blank=True)
class Project(models.Model):
# some attributes
researchers = models.ManyToManyField(FacultyMember, blank=T
我不得不编写Django ORM查询,以获得以下查询的模拟:
vendors = Vendors.objects.select_related('legal_entities') #....and then I want to also get legal_entities_details
我的模特:
class LegalEntitiesDetails(models.Model):
legal_entities = models.ForeignKey(LegalEntities, models.CASCADE)
class LegalEntitie
使用Django QuerySet API,如何在相同的两个表/模型之间执行多个连接?为了便于说明,请参阅以下未经测试的代码:
class DataPacket(models.Model):
time = models.DateTimeField(auto_now_add=True)
class Field(models.Model):
packet = models.ForeignKey(DataPacket, models.CASCADE)
name = models.CharField(max_length=25)
value = models.Floa
我正处于django的学习阶段。我只是钻研了一个学习框架的项目,并在整个过程中提出了一系列问题。
我基本上希望为创建任务列表的用户创建单独的页面,并让他们将任务发布到自己的页面。
从django.db导入模型到django.contrib.auth.models导入用户
# Create your models here.
class UserProfile(models.Model):
# This line is required. Links UserProfile to a User model instance.
user = models.OneToOneField
我有两个模型: class P(mdoels.Model):
name = models.CharField(null=False,max_length=120)
...
class F(mdoels.Model):
name = models.CharField(null=False,max_length=120)
...
p = models.ManyToManyField(P) 我需要一个这样的查询: SELECT p.name, f.name
FROM f
JOIN f_p ON f.id = f_p.f_id
JOIN p ON p.id=
例如,在Django 1.8:
class A(models.Model):
x = models.BooleanField(default=True)
class B(models.Model):
y = models.ManyToManyField(A)
class C(models.Model):
z = models.ForeignKey(A)
在这种情况下,C.objects.all().prefetch_related('z__b_set')不能工作。
是否有一种方法可以预取c[0].z.b_set.all()工作所需的信息而不需要额外的
我只是想知道我是否有三个模特:
class A(models.Model:
b = models.ForeignKeyField('B')
class B(models.Model):
c = models.ForeignKeyField('C')
class C(models.Model):
user = models.ForeignKeyField('auth.User')
我在名单上看A:
foo = A.objects.all().prefetch_related('B')
有没有办法让它也预取C(然后是
我正在尝试建立在我的后台Django的网络应用程序,我想做一些类型的人推荐,并只显示当前用户没有关注的人,但我不知道如何做。
似乎有一些关于StackOverflow的问题,但是它们是关于SQL查询的,我仍然只知道数据库的Django模型。
对于下面的关系,我使用标准的Django用户模型和以下模型
class Follow(models.Model):
# This means following(Person A) follows follower(Person B)
following = models.ForeignKey(User, on_delete=models.
我目前正在学习Django,我发现在ManyToMany字段中使用Django有点困难。我正在使用一个中间模型来管理我的关系。 我有三个模型:Ticket、User和TicketUserRelation。我希望能够查询票据模型,并检索其对应的用户对象和票据对象。我该怎么做呢? 在Laravel中,我会做一些类似于 Ticket::where('id', '1')->with('contributors') 但是我真的不知道如何在Django中做到这一点 模型: class User(models.Model):
name = mo
我正在构建一个有趣的CMS,但当我在django中查询给定帖子的资源时,我被困在django中。
我让下面的代码做我想做的事情:
data = list(Post.objects.filter(topic__name=topic_name).values())
for d in data:
d["resources"] = list(Resource.objects.filter(post=d["id"]).values())
问题是,在1个查询中选择了带有主题的帖子列表后,它会为每个资源列表多创建一个查询。有没有更有效的方法将资源字典放到每个帖子中?