【发布时间】:2018-04-01 14:44:19
【问题描述】:
我正在开发一个 Django 1.10 和 Python 3.6 项目,我已经使用 gunicorn 成功地将它部署在计算引擎上。我的项目运行良好,但我有一个问题,我有两个模型作为“Articles”和“TaggedArticle” ",我在 admin.py 中指定了 TaggedArticle 的所有字段,但它没有显示在 Django admin 中,而是在我的本地系统上显示 Django admin 中的所有字段。现在部署后,我使用的是 Postgresql 而不是 SQLite。
更新:字段不仅仅显示在 Django Admin 中 TaggedArticle 的详细视图中
这是我的模型:
文章型号:
class Article(models.Model):
link = models.URLField(max_length=255)
category = models.CharField(max_length=255, choices=Categories)
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)
这是我的 TaggedArticle 的 admin.py:
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 = ['link', 'user', 'email']
list_filter = ['user', 'email']
model = Tagged
admin.site.register(Tagged, TaggedArticleAdmin)
只有category_fit 和article 字段显示在Django admin 中,为什么其他字段不显示在Django admin 中?即使它显示其他字段,如链接、用户和电子邮件,如您所见,我已在 list_display 中添加了这些字段。
请帮帮我! 提前致谢!
【问题讨论】:
-
可能是您更新了模型并且没有在生产中应用迁移?
-
嗨,@sinned!我已应用所有迁移!
-
你是如何部署的?您是从生产环境中的 git 存储库中提取代码吗?如果是这样 - 所有更改是否都推送到正确的分支?确保生产环境中的 admin.py真的符合您的期望。
-
是的!我只是第一次从 GitHub 克隆了我的代码,但现在我正在通过 ssh 使用 nano 编辑器对我的服务器实例进行更改。
-
如果它在本地工作而不是在生产环境中运行,那么显然生产环境不会运行相同的代码......所以首先检查你在生产环境中真正拥有的内容(源代码等)并且你重新启动了你的服务器进程部署后。哦,是的:不要直接在生产服务器上编辑你的代码 - 在本地进行更改,测试它们,一旦你有一个工作版本将它部署到生产中。
标签: python django postgresql django-models django-admin