我有一個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