我有一个Django模型如下Django管理处理一对多关系
class Project(models.Model)
name=models.CharField(max_length=200)
class Application(models.Model)
proj=models.ForeignKey(Project, null=True, blank=True)
我需要修改该项目的管理形式,能够将多个应用程序分配到的项目,所以在管理。 PY我已经创建了项目的ModelAdmin类如下
class ProjectAdmin(ModelAdmin)
form=projectForm
project_apps=[]
和项目形式如下
class ProjectForm(forms.ModelForm):
class Meta:
model = Project
project_apps =forms.ModelMultipleChoiceField(queryset=Application.objects.all(),required=False,)
def __init__(self, *args, **kwargs):
super(ProjectForm, self).__init__(*args, **kwargs)
if self.instance.id is not None:
selected_items = [ values[0] for values in Application.objects.filter(project=self.instance) ]
self.fields['project_apps'].initial = selected_items
def save(self,commit=True):
super(ProjectForm,self).save(commit)
return self.instance
通过这样做我在创建/编辑项目表单中有多个选择。 我需要的是覆盖保存方法以保存所选应用程序中项目的引用?
我怎样才能得到选定的应用程序?
为什么你不使用内联管理员? – 2010-08-01 12:13:04
我用它,但它增加了3个组合框,我希望它在多个选择列表 – Fanooos 2010-08-01 13:33:48