Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 来自外键的Django管理限制模型_Python_Django_Python 2.7_Django Admin - Fatal编程技术网

Python 来自外键的Django管理限制模型

Python 来自外键的Django管理限制模型,python,django,python-2.7,django-admin,Python,Django,Python 2.7,Django Admin,我有以下模型设置: 问题是,当我试图在管理页面中提取对象时,计算机名称链接到数十万行,而这些行与管理页面无关,并且该页面从未加载。如何仅将计算机名称筛选到用户为多个字段选择的对象 class ScoringException(models.Model): class Meta: ordering = ['date_modified'] requester = models.CharField('Requester',max_length=50,null=False

我有以下模型设置:

问题是,当我试图在管理页面中提取对象时,计算机名称链接到数十万行,而这些行与管理页面无关,并且该页面从未加载。如何仅将计算机名称筛选到用户为多个字段选择的对象

class ScoringException(models.Model):
    class Meta:
        ordering = ['date_modified']
    requester = models.CharField('Requester',max_length=50,null=False,blank=False)
    computer_names = models.ManyToManyField(Computer)
    domain = models.ForeignKey(Domain)
    exception_kpi_types = models.ManyToManyField(ScoringType)
    expiration_date = models.DateField('Expiration Date')
    reason = models.CharField('Reason',max_length=1000,null=False,blank=False)
    approved = models.BooleanField('Approved')
    date_modified = models.DateTimeField('Date Updated',auto_now=True)

您可以在管理中使用
raw\u id\u字段
,这样Django就不会呈现十万行数据:

@admin.register(ScoringException)
class ScoringExceptionAdmin(admin.ModelAdmin):
    ....
    raw_id_fields = ['computer_names']
Django将使用
raw\u id\u字段
,显示所选m2m对象的id列表。还添加了一个搜索按钮,以便为m2m关系添加新对象


有关更多信息,请参阅。

您是否可以尝试另一个小部件
水平过滤
,看看该小部件是否能让它变得更好?那很酷。是否有显示实际文本而不是ID的方法?用户很难通过查看Django内置的ID列表来可视化正在发生的事情,请参阅。答案还包含指向代码片段的链接,用于呈现原始\u id\u字段的附加信息。