我確實有一個通過 FK 關系Comment與模型相關的模型Poller。有什么方法可以從評論的概述中通過 Django 管理界面跳轉到這個相關物件嗎?
# Models.py
class Comment(models.Model):
"""
A Class for comments made by users to a specific Poller
"""
poller = models.ForeignKey(Poller, on_delete=models.CASCADE, related_name='PollerComment')
user = models.ForeignKey(Account, on_delete=models.CASCADE)
vote = models.ForeignKey(Vote, on_delete=models.CASCADE)
# Admin.py
@admin.register(Comment)
class PollerCommentAdmin(admin.ModelAdmin):
list_display = ('user', 'created_on', 'poller', 'comment', 'flag_count', 'upvote_count',
'downvote_count', 'is_public', 'is_removed')
現在我想讓“輪詢器”列可點擊,然后將我重定向到管理員中的這個輪詢器物件。
uj5u.com熱心網友回復:
您需要使用回傳所需鏈接的自定義方法替換pollerin list_display。
from django.utils.safestring import mark_safe
# [...]
@admin.register(Comment)
class PollerCommentAdmin(admin.ModelAdmin):
list_display = (
'user', 'created_on', 'get_poller_link', 'comment', 'flag_count',
'upvote_count','downvote_count', 'is_public', 'is_removed'
)
def get_poller_link(self, obj):
# assuming poller is in the same app...
return mark_safe('<a href="../poller/%s">%s</a>' % (obj.poller_id, obj.poller)
get_poller_link.short_description = "Header to display"
get_poller_link.admin_order_field = 'poller_id' # or another
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/339911.html
標籤:姜戈
