2016-04-27 43 views
0

我正在使用第三方应用程序 - django-quiz。由于型号Quiz本身不包含字段Language,因此我在Language模型中添加了OneToOneField(Quiz),这是我自己的模型。如何在Admin中将字段添加到第三方应用程序模型中?

在这个程序,你可以看到你的管理Quizes但我不能看到Quiz标签内Language模型选择字段(我可以看到Quiz模型的选择Language选项卡里面 - 我想对面)。我怎么做?我试图添加到admin.py这个代码,但它会引发错误(可能是因为它是一个第三方应用程序)

from quiz.models import Quiz 


class QuizInlineLanguage(admin.StackedInline): 
    fields = Quiz.language 

class QuizAdmin(ModelAdmin): 
    inlines = [QuizInlineLanguage,] 

admin.site.unregister(Quiz) 
admin.site.register(Quiz, QuizAdmin) 

编辑错误:

<class 'SolnguagesApp.admin.QuizAdmin'>: (admin.E105) 'SolnguagesApp.admin.QuizInlineLanguage' must have a 'model' attribute. 
+0

删除此行, admin.site.unregister(测验) – mohd

+0

这就是问题所在:django.contrib.admin.sites.AlreadyRegistered:模型测验已被注册,另一件事是,QuizInlineLanguage是不正确的太。 –

+2

检查此答案:http://stackoverflow.com/a/35741651/2011147 – Selcuk

回答

0

不要注册模型前使用未注册!

from quiz.models import Quiz 


class QuizInlineLanguage(admin.StackedInline): 
    fields = Quiz.language 

class QuizAdmin(ModelAdmin): 
    inlines = [QuizInlineLanguage,] 

admin.site.register(Quiz, QuizAdmin) 
+0

这是行不通的:django.contrib.admin.sites.AlreadyRegistered:模型测验已经注册我猜QuizInlineLanguage也不正确,但我无法弄清楚如何做到这一点。 –

+0

测验不是来自这个应用程序,它来自第三方应用程序。 –

+0

检查你的应用程序和第三方应用程序的顺序,你可以从你的设置分享你installed_Apps? – mohd

相关问题