我一直在阅读很多,但我似乎无法找到解决方案.
我正在Django中编写一个应用程序,我还在编写管理员端.
我有一个名为"Environments"的模型和一个名为"Servers"的模型,服务器和环境之间存在ForeignKey关系,例如给定环境有多个服务器.
在管理界面中修改环境的"添加"表单时,我使用内联表单来显示将与环境关联的服务器列表,如下所示:
class ServerInline(admin.TabularInline):
model = Server
extra = 39
class EnvironmentAdmin(admin.ModelAdmin):
inlines = [ServerInline]
Run Code Online (Sandbox Code Playgroud)
很简单吧?
我想要做的是使用默认值预填充服务器内联表单,我已经能够使用相同的值预先填充它们:
class ServerInlineAdminForm(forms.ModelForm):
class Meta:
model = Server
def __init__(self, *args, **kwargs):
super(ServerInlineAdminForm, self).__init__(*args, **kwargs)
self.initial['name']='Testing'
class ServerInline(admin.TabularInline):
form = ServerInlineAdminForm
model = Server
extra = 39
class EnvironmentAdmin(admin.ModelAdmin):
inlines = [ServerInline]
Run Code Online (Sandbox Code Playgroud)
但这不是我想要的,我希望能够使用列表中的39个不同值初始化39个服务器表单实例.最好的办法是什么?
谢谢!
因此,我正在编写此应用程序,并使用通用视图对象ListView和ObjectView。
我在两种方法上都重写了get_context_data方法,以便能够在两种情况下添加相同的额外上下文(与对象无关)。
现在,我有两个类,一个扩展了Listview,另一个扩展了DetailView,它们都具有相同的get_context_data方法。
虽然工作正常,但真的很痛苦,但是是否有一个父类可以重写get_context_data,从而使ListView和DetailView继承新的get_context_data?这样看起来会更好:)
谢谢。
X