2015-01-07 35 views
0

我有一个django模型NewsItem,它有几个字段,包括日期,文本和外键字段。一个外键字段是:添加项目到Django管理对象创建表格

editor = models.ForeignKey(User, verbose_name="Editor", related_name='editors', 
          limit_choices_to=_editors) 

出于某种原因,外键字段不会在“添加项目”的形式在Django管理界面显示出来(在http://[hostname]/admin/[app name]/newsitem/add/然而,所有其他的领域做。因为编辑器是一个必填字段我无法保存任何项目

我有检查,以确保不存在满足约束用户:

>>> User.objects.filter(groups__name__iexact='editors') 
[<User: testeditor>] 

我找不到任何理由,这些领域不会显示在管理员中,我是否需要指定一个小部件为他们在NewsItemAdmin类?我需要告诉管理员显示它们吗?如果是这样,怎么样?

+1

让我们看看_editors的代码。也许它不会回报任何东西。或者看看这个问题的一些其他方式来做到这一点:http://stackoverflow.com/questions/232435/how-do-i-restrict-foreign-keys-choices-to-related-objects-only-in-django –

+0

糟糕,这是我在第二块中运行的代码。它返回一个对象。 –

+0

发布您的admin.py,_editors。开始拿走一块去调试。删除'limit_choices_to':会发生什么?如果表格出现,我们现在知道它与限制选择有关。虽然我期望一个空的选择,而不是完全消失的领域。从ModelAdmin中删除件(甚至不要使用'ModelAdmin' ..只是直接注册'admin.site.register(MyModel)' - 看看会发生什么。如果没有任何'ModelAdmin'定制,它就不会出现,这意味着它是与字段定义本身有关......等等。 –

回答

0

您应该确保您创建此用户的用户具有更改编辑器的权限。 [facepalm]

相关问题