- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当使用 raw_id_fields 显示时,如何限制 Django 管理中的 ForeignKey
字段显示的选项?选项?
当呈现为选择框时,很容易define a custom ModelForm
使用所需的选项设置该字段的查询集值。但是,当使用 raw_id_fields
呈现时,此查询集似乎被完全忽略。它会生成指向该 ForeignKey
模型的链接,允许您通过弹出窗口从该模型中选择任何记录。您仍然可以通过自定义 URL 来过滤这些值,但我找不到通过 ModelAdmin
执行此操作的方法。
最佳答案
我在我的 Django 1.8/Python 3.4 项目中使用类似于 FSp 的方法:
from django.contrib import admin
from django.contrib.admin import widgets
from django.contrib.admin.sites import site
from django import forms
class BlogRawIdWidget(widgets.ForeignKeyRawIdWidget):
def url_parameters(self):
res = super().url_parameters()
res['type__exact'] = 'PROJ'
return res
class ProjectAdminForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['blog'].queryset = Blog.objects.filter(type='PROJ')
self.fields['blog'].widget = BlogRawIdWidget(rel=Project._meta.get_field('blog').remote_field, admin_site=site)
class Meta:
# Django 1.8 convenience:
fields = '__all__'
model = Project
class ProjectAdmin(admin.ModelAdmin):
form = ProjectAdminForm
raw_id_fields = ('blog',)
在 django.admin
中仅选择 blog.type == 'PROJ'
作为外键 Project.blog
。不幸的是,因为最终用户可能并且愿意选择任何东西。
关于python - 如何限制 Django raw_id_field 的 ForeignKey 选择的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23617858/
我的 admin.py 中有以下代码: class UserManagedGroupAdmin(admin.ModelAdmin): inlines = [MembershipInline]
我有一个模型表单,它有一个字段,该字段是一个作为 40,000 行的模型的外键值。默认模型表单尝试创建一个包含 40,000 个选项的选择框,至少可以说这并不理想。当这个模型表单用于表单集工厂时更是如
我目前在 Django 项目中使用 admin.py 中的 raw_id_field 时遇到问题。 我网站的管理区域有许多用于各种不同模型页面的图像上传字段,这些字段都是图像模型的外键字段,其中存储了
我有一个包含多个外键字段的模型,我希望所有这些字段都显示为 raw_id_fields 小部件,即带有放大镜按钮。 我试过salmonella ,但我在渲染 Django Suit 模板时遇到错误。
我不使用 admin.py有什么方法可以让我拥有外键字段而不是下拉选择框、动态搜索框(对用户有建议),就像我们在 admin.py 中的 raw_id_fields 一样。 模型.py class m
我有一个 m2m 关系,在我的 AdminForm 中,我将使用 raw_id_fields 而不是 filter_horizontal 选项。作为解释,我更喜欢 raw_id_fields 而不
我有一个模型 Item,它有一个指向 Category 的外键。 在 Category 管理页面中,我希望能够选择现有的 Item 对象并对其进行修改。 class Item(models.Model
我试图使 raw_id_fields 的输入文本框比默认大小更宽,但没有成功。这是我尝试过的('codarticolo' 是 raw_id_fields)无济于事: 管理员.py class Movi
我是 django 的新手,正在尝试 djangoAdmin,但我遇到了一个问题。我正在为一列使用 raw_id_field 并且我没有得到放大镜图标但是在编辑过程中相应的公司名称显示在该字段旁边。我
在 Django 管理更改列表页面上呈现 list_filter 字段时是否有 raw_id_field 样式小部件可供使用? 当我将基于外键的字段添加到 Django modeladmin list
自定义 Django 管理面板,我正在使用 raw_id_fields从具有数千个元素的模型中选择一个 ForeignKey,因为默认的选择框下拉列表不方便使用这么多的元素。 它可以工作,但它显示的
是否有机会在 django admin 中的“raw_id_fields”旁边添加更改外键对象页面的链接? 我使用 raw_id_fields 来减少对 mysql 的查询次数。 当我不使用 raw_
我有一个数据模型如下: class Candidate(models.Model): name = models.CharField() class Skill(models.Model):
当使用 raw_id_fields 显示时,如何限制 Django 管理中的 ForeignKey 字段显示的选项?选项? 当呈现为选择框时,很容易define a custom ModelForm使
在 Django admin 中,可以设置一个 raw_id_fields 以便有一个搜索小部件而不是一个选择框。当外键表很大时,这非常适合节省大量数据库查询。 Django Rest Framewo
这种情况在我的项目中经常发生: 有人添加了一个模型 Foo,它有几个 ForeignKey 字段,其中一个指向模型 Bar 为该模型添加了一个管理员(并且工作正常) 代码已部署 在生产服务器上,Bar
更新到 1.6.1 后,使用管理面板中 raw_id_fields 默认实现提供的放大镜会显示包含更改列表的弹出窗口,而不是选择列表。单击某个项目会显示更改表单,而不是选择该项目、关闭窗口并返回管理页
我是一名优秀的程序员,十分优秀!