gpt4 book ai didi

django - 如何从Django管理员 View 链接到其他对象?

转载 作者:行者123 更新时间:2023-12-04 03:34:18 26 4
gpt4 key购买 nike

我创建了一个自定义管理类,以在Django应用中显示Comments Admin。我想做的是将“对象ID”下的项目链接到其各自对象的编辑对象页面。我将如何实现?

我的评论管理员:

class MyCommentsAdmin(admin.ModelAdmin):
fieldsets = (
(_('Content'),
{'fields': ('user', 'user_name', 'user_email', 'user_url', 'comment')}
),
(_('Metadata'),
{'fields': ('submit_date', 'ip_address', 'is_public', 'is_removed')}
),
)

list_display = ('id', 'name', 'comment', 'content_type', 'object_pk', 'ip_address', 'submit_date', 'is_public', 'is_removed')
list_filter = ('submit_date', 'site', 'is_public', 'is_removed')
date_hierarchy = 'submit_date'
list_display_links = ('id','comment',)
ordering = ('-submit_date',)
raw_id_fields = ('user',)
search_fields = ('comment', 'user__username', 'user_name', 'user_email', 'ip_address')

admin.site.unregister(Comment)
admin.site.register(Comment, MyCommentsAdmin)

谢谢!!

最佳答案

在admin类上定义一个自定义方法,并在list_display元组中引用该方法。

from django.core.urlresolvers import reverse
class MyCommentsAdmin(admin.ModelAdmin):

list_display = ('id', 'name', 'comment', 'content_type', 'object_link', 'ip_address', 'submit_date', 'is_public', 'is_removed')
list_select_related = True

def object_link(self, obj):
ct = obj.content_type
url = reverse('admin:%s_%s_change' % (ct.app_label, ct.model), args=(obj.id,))
return '<a href="%s">%s</a>' % (url, obj.id)
object_link.allow_tags = True

注意我添加了 list_select_related=True,因为object_link方法引用了content_type模型,因此否则会导致整个额外的查询负载。

关于django - 如何从Django管理员 View 链接到其他对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5880364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com