- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Django admin 在一个请求中可视化所有样本。它有效,但它真的很慢。我尝试使用 prefetch
, formset
, raw_id_fields
, 和 readonly_fields
没有运气。当我加载超过 10 个样本时,它仍然很慢。我在这里遇到了 N+1 问题。我检查了 Django 调试工具栏,它对该请求中的每个示例进行了查询。
这是我的模型:
# This is where the sample has all information
class Inventory(models.Model):
sample_id = models.CharField(max_length=50, primary_key=True)
def __str__(self):
return '{0}'.format(self.sample_id)
# Intermediate model
class SampleRequestInventory(models.Model):
sample = models.ForeignKey("Inventory", on_delete=models.CASCADE)
request = models.ForeignKey("SampleRequest", on_delete=models.CASCADE)
# This is the request model that I'm looking
class SampleRequest(models.Model):
samples = models.ManyToManyField("Inventory", through="SampleRequestInventory")
class SamplesInline(admin.TabularInline):
model = SampleRequestInventory
# raw_id_fields = ('sample',)
readonly_fields = ('sample',)
extra = 0
# this formset did not work either
# class MyInlineFormset(BaseInlineFormSet):
# def __init__(self, data=None, files=None, instance=None,
# save_as_new=False, prefix=None, queryset=None, **kwargs):
# super(MyInlineFormset, self).__init__(data, files, instance,
# save_as_new, prefix, queryset, **kwargs)
# self.queryset = SampleRequest.objects.all(). \
# prefetch_related('samples')
class SampleRequestAdmin(admin.ModelAdmin):
# This queryset for prefetching only makes an extra query...
def get_queryset(self, request):
qs = super(SampleRequestAdmin, self).get_queryset(request)
return qs.prefetch_related('samples')
# extra settings
list_display = ('date', 'status',)
ordering = ('date',)
# inline that causes the slowness
inlines = (SamplesInline, )
# I tried using formset as well, but didn't work
# formset = MyInlineFormset
最佳答案
尝试将以下内容添加到您的 SamplesInline:
def get_queryset(self, request):
qs = super(SamplesInline, self).get_queryset(request)
return qs.select_related('sample')
readonly_fields
在您的 Inline 中导致额外的查找满足
__str__
为您
Inventory
类(class)。
关于Django admin 使用带有多对多字段的 TabularInline 很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52386873/
我的模型包含多对多关系。 Measurements可以是任意数量的 DataSets 的一部分. # models.py from django.db import models class Data
我正在使用 TabularInlines 在 django 管理中管理多对多关系。当满足某些条件时,我想使内联只读。为了实现这一点,我重写了 BaseModelAdmin 中的 get_readonl
我将 Tabularline 用于其中一个管理页面。 加载时,它将自动加载 3 个空行。 我该如何预防? 最佳答案 您可以设置 extra对于内联,它控制显示多少空行。 关于Django admin.
我有模型 A , B , 和 AB .A对象有一个 ManyToManyField叫 A.m可以链接到很多B对象,通过我的中介模型 AB . 我有一个很好的TabularInline栏目满AB对象,在
我有一个包含许多字段的内联显示在 admin.tabularinline 中。 将这些字段分成多行的最简单方法是什么? 最佳答案 使用可以使用 StackedInline 反而 关于Django 可以
我正在使用 Django 2.0.9 并且正在创建一个简单的 TabularInline ModelAdmin,如下所示: class AnswerInline(admin.TabularInline
当我在 Django 的管理面板中创建 TabularInline 时,它会为每条记录显示一个标题。我怎样才能改变这个标题?如何删除此标题? 我在下面附上了截图。我指的标题在这里是 ExportL
我有一个像这样的模型 class Section(models.Model): section_title = models.CharField(max_length=200) sec
给定一个模式 A 和一个具有与模型 A 具有多对多关系的字段的模型 B,我试图允许用户创建模型 B 的对象也可以内联/在线创建模型 A 的对象-fly 就像 TabularInline 允许您在管理员
我想要一个表单来使用指定的中间表添加、编辑和删除多对多关系的值,就像我可以从 Django 的管理 TabularInline 表单中获得的一样。有没有办法做到这一点?我还没有在 Django 的文档
我有一个内联类型为 TabularInline 的 ModelAdmin 类。我想要的是 TabularInline 的每一行在其左侧显示一个行号。这个数字会随着新记录添加到内联中而增加,并会在编辑表
我有以下模型和 TabularInline 子类: class SomeModel(models.Model): name = models.CharField(max_length=50)
示例模型: class Book(models.Model): TYPES = ( (0, 'Sci-fi') (1, 'Biography') )
我正在尝试使用 Django admin 在一个请求中可视化所有样本。它有效,但它真的很慢。我尝试使用 prefetch , formset , raw_id_fields , 和 readonly_
这个问题已经有答案了: How to force Django Admin to use select_related? (6 个回答) 已关闭 6 年前。 这是我的 models.py 的一部分:
我如何将外键的字段(不是 id 字段)显示为表格内联中的只读列? 例如,我的管理页面用于编辑显示在 slider 上的项目。我的表格内联表示故事列表: class SliderItemInline(T
我在管理员中的表格内联看起来像这样: 如何摆脱 DateDeCotisation_adherents 对象 短语? 对于奖励积分,为什么底部有三个空行? 管理员.py class DatesDeCot
我正在学习 Django web 的基础知识,但我遇到了一个问题 我在 models.py 中有以下模型(简化): class CustomUser(AbstractUser): # Custom A
如果存在如下关系: B.ForeignKey(A) django 可以通过 TabularInline 在one管理页面中显示它: admin.py from django.contrib impor
我有两个模型,例如书籍 和作者。一个作者可以有很多书,因此我有一个从 Book 到 Author 表的外键。 我使用 TabularInline 类在我的 Django 应用程序中显示 Book 和
我是一名优秀的程序员,十分优秀!