我试图在文档后面的外键字段中筛选我的管理选项。
我的模型很简单:
class Page(models.Model):
title = models.CharField(max_length=50, null=False, blank=False, default="Title")
layout = models.ForeignKey(Layout, null=False) #This sets the layout for the current page为了达到这个目标,我应该做如下的事情:
class PageAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "layout":
kwargs["queryset"] = Template.objects.get_a_queryset()
return super(PageAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)它正在工作,但每次我访问页面时,它都要遍历函数3次,总共提供5次查询(默认情况下,3次加2次)。它是相同db_field的3倍。
如何将其简化为一个查询?这是一种有意的行为,如果是so...why呢?
发布于 2014-10-30 09:21:48
我不太清楚这是怎么回事,但我有两个工具可以指出你的方向:
运行dev服务器的shell将进入IPython,在那里嵌入(),以便您可以探索堆栈
这将打印出堆栈,以便区分3次调用。
https://stackoverflow.com/questions/26641465
复制相似问题