我有以下模型设置:
问题在于,当我尝试在管理页面中提取对象时,computer_names链接到数十万行不相关且页面永远不会加载。如何将computer_names仅过滤为ManyToMany字段的用户所选对象?
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)
答案 0 :(得分:1)
您可以在管理员中使用raw_id_fields
,以便Django不会呈现数十万行数据:
@admin.register(ScoringException)
class ScoringExceptionAdmin(admin.ModelAdmin):
....
raw_id_fields = ['computer_names']
使用raw_id_fields
,Django将显示所选m2m对象的ID列表。还添加了一个搜索按钮,以便更轻松地为m2m关系添加新对象。
有关详细信息,请参阅documentation。