在models.py
中执行此操作的基本方法,例如:
class Foo(models.Model):
title = models.CharField(max_length=200)
...
def custom_tag(self):
return ('custom: %s' % self.title)
custom_tag.allow_tags = True
custom_tag.short_description = _("Custom Tag")
或者,如果是admin.py
的内部文件;
class FooAdmin(admin.ModelAdmin):
list_display = ['title', 'custom_tag', ...]
...
def custom_tag(self, instance):
return ('custom: %s' % instance.title)
custom_tag.allow_tags = True
custom_tag.short_description = _("Custom Tag")
admin.site.register(Foo, FooAdmin)
我的问题是,allow_tags
和short_description
如何运作?我在哪里可以找到相关的文件?
答案 0 :(得分:3)
您正在查看文档的开发版本。如果您查看Django 1.10的那个(向下滚动到"自版本1.9和#34后弃用;),您将看到他们正在删除allow_tags
选项并且用其他方式取代同样的东西。有很多关于如何使用short_description
的例子,因为它没有被弃用。
如果您真的想看到源代码,here's the line where it gets the short description。不要担心allow_tags
,因为它已在1.11中删除了 - 现在应该通过使用mark_safe()
将字符串标记为安全来自动完成。
作为旁注,您不需要在这两个地方添加custom_tag()
方法。管理员在模型和管理类中查找它,这样就足够了。如果它不会在管理员之外使用,我建议将其放在管理类中,避免使模型更复杂。