Mar*_*ark 16 django django-admin
我的模型看起来像这样:
class Asset(models.Model):
serial_number = models.CharField(max_length=100, unique=True)
asset_tag = models.CharField(max_length=100, unique=True)
class WorkOrder(models.Model):
asset = models.ForeignKey(Asset)
Run Code Online (Sandbox Code Playgroud)
基本上提交工单,然后管理员将资产分配给工单.asset_tag字段是我们可以扫描的条形码.在django admin中编辑工单时,默认情况下,资产字段显示为窗口小部件.我们希望能够做的是拥有一个搜索字段,以便我们可以扫描资产标签,然后在数据库中搜索正确的资产以与工作单相关联.
我知道你可以自定义django admin外键到硬编码查询,但我无法弄清楚如何获取它所以它根据管理页面上的字段进行搜索.
lmi*_*asf 20
如果您使用的是Django >= 2.0,则可以利用名为autocomplete_fields. 您必须search_fields在相关对象的 ModelAdmin 上进行定义,因为自动完成搜索使用它。
由于您ForeignKey与Assetin有关系WorkOrder,因此在admin.py您的应用程序中添加以下内容:
from django.contrib import admin
@admin.register(Asset)
class AssetAdmin(admin.ModelAdmin):
search_fields = ["serial_number", "asset_tag"]
@admin.register(WorkOrder)
class WorkOrderAdmin(admin.ModelAdmin):
autocomplete_fields = ["asset"]
Run Code Online (Sandbox Code Playgroud)
将要用于搜索的字段添加到search_fields,并添加定义autocomplete_fields,如上面的代码所示。
| 归档时间: |
|
| 查看次数: |
14074 次 |
| 最近记录: |