Nếu mô hình django chứa trường khóa ngoài và nếu trường đó được hiển thị trong chế độ danh sách, thì trường đó hiển thị là văn bản, thay vì hiển thị liên kết .Phím nước ngoài trong django hiển thị danh sách quản trị
Có thể tự động hiển thị tất cả các khóa nước ngoài dưới dạng liên kết thay vì văn bản phẳng không?
(tất nhiên người ta có thể làm điều đó trên một lĩnh vực theo từng lĩnh vực, nhưng là có một phương pháp chung?)
Ví dụ:
class Author(models.Model):
...
class Post(models.Model):
author = models.ForeignKey(Author)
Bây giờ tôi chọn một ModelAdmin mà tác giả xuất hiện trong chế độ danh sách:
class PostAdmin(admin.ModelAdmin):
list_display = [..., 'author',...]
Hiện tại ở chế độ danh sách, trường tác giả sẽ chỉ sử dụng phương pháp __unicode__
của lớp Author
để hiển thị tác giả. Trên đầu trang mà tôi muốn có một liên kết trỏ đến url của tác giả tương ứng trong trang quản trị. Điều đó có thể không?
phương pháp Manual:
Vì lợi ích của sự hoàn chỉnh, tôi thêm các phương pháp thủ công. Nó sẽ có thêm một phương pháp author_link
trong lớp PostAdmin
:
def author_link(self, item):
return '<a href="../some/path/%d">%s</a>' % (item.id, unicode(item))
author_link.allow_tags = True
Điều đó sẽ làm việc cho rằng lĩnh vực cụ thể nhưng đó là không những gì tôi muốn. Tôi muốn một phương pháp chung để đạt được hiệu quả tương tự. (Một trong những vấn đề là làm thế nào để tìm ra con đường tự động đến một đối tượng trong trang quản trị django.)
Cảm ơn bạn đã trả lời này! Bạn có thể giải thích về việc sử dụng các nội tuyến? Điều đó sẽ giúp ích như thế nào? –
@Olivier: Đã chỉnh sửa câu trả lời của tôi để chỉ cho bạn đúng hướng về nội tuyến. – cethegeek