我正在研究一個Django 1.10項目,其中我有一個名爲TaggedArticle的模型,它與具有related_name的用戶相關爲「標記」,現在我想要顯示當我們在Django admin中打開一個用戶對象時,一個TaggedArticle對象表。如何在Django Admin中實現該功能?在Django的用戶模型中添加用戶相關的對象Admin
這裏是我的模型: TaggedArticle:
class TaggedArticle(models.Model):
user = models.ForeignKey(User, related_name='tagging')
email = models.EmailField(max_length=255)
category_fit = models.CharField(choices=choices, max_length=255)
article = models.ForeignKey(Article, related_name='articles')
link = models.URLField(max_length=255,)
relevant_feedback = models.TextField(blank=True)
category = models.CharField(max_length=255,)
created_at = models.DateTimeField(default=timezone.now, editable=False)
更新:admin.py
from django.contrib import admin
from .models import TaggedArticle as Tagged
from django.contrib.auth.admin import UserAdmin
from .models import TaggedArticle
from django.contrib.auth import get_user_model
User = get_user_model()
admin.site.unregister(User)
class InlineTaggedArticle(admin.TabularInline):
model = TaggedArticle
class CustomAdmin(UserAdmin):
date_hierarchy = 'date_joined'
inlines = [InlineTaggedArticle, ]
list_display = list(UserAdmin.list_display) + ['totol_tagged_article']
def totol_tagged_article(self, obj):
return obj.tagging.all().count()
admin.site.register(User, CustomAdmin)
class TaggedArticleAdmin(admin.ModelAdmin):
date_hierarchy = 'created_at'
fields = ['category_fit', 'article', 'link', 'relevant_feedback', 'category', 'user', 'email']
list_display = ['article', 'link', 'user', 'email', 'relevant_feedback']
list_filter = ['user', 'email']
model = Tagged
admin.site.register(Tagged, TaggedArticleAdmin)
更新:她e爲截圖:
- TaggedArticle列表視圖:
:
嗨,@NeErAj!另外,如何顯示用戶詳細信息頁面中標記文章的總數? –
以上代碼將在django管理員的用戶詳細信息頁面中顯示所有標記的文章。 你試過上面的代碼嗎? –
是的,它的工作!但現在我需要顯示標籤文章的總數! –