我有一个模型(Node),它在admin中按日期排序,因此首先显示最新的节点。这很好。
同一模型(Node)由另一个模型(Device)引用。编辑设备时,有一个节点列表(在HTML选择中),它也按日期排序。 我希望这个选择按名称排序,而不是按日期排序。
是否可以使用两种不同的排序方法,一种用于对象列表,另一种用于选择框?
感谢。
答案 0 :(得分:6)
最简单的方法是覆盖ModelAdmin
Device
中的formfield_for_foreignkey
方法,例如
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'node':
kwargs['queryset'] = Node.objects.order_by('name')
return super(DeviceAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
(我在这里假设相当数量。希望很明显!)
同样有formfield_for_manytomany
。
答案 1 :(得分:2)
你有没有试过像:
class Node
name = ...
date = ...
fields ....
class Meta:
order_with_respect_to='Device'
ordering = ('Device', 'name')
答案 2 :(得分:0)
您可以为DeviceAdmin创建自定义表单,并为' Node'设置查询集参数。领域。
var options = {
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
UrlFetchApp.fetch('https://www.example.com', options);