【发布时间】:2017-10-14 04:30:34
【问题描述】:
我正在开发一个 Django 1.10 项目,其中我有一个名为 TaggedArticle 的模型,它与相关名称为“标记”的用户相关,现在我想在打开用户时显示 TaggedArticle 对象表Django admin 中的对象。如何在 Django Admin 中实现该功能?
这是我的模型: 标记文章:
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)
更新:以下是截图:
- TaggedArticle 列表视图:
- TaggedArticle 的详细信息页面:
- 用户的详细信息页面:
在用户的详细信息页面上,应显示来自 TaggedArticle 对象的所有字段。
请帮帮我!
提前致谢!
【问题讨论】:
标签: python django django-models django-admin