我有一個Django模型字段,我想內聯。該領域是多對多的關係。所以有「項目」和「用戶配置文件」。每個用戶配置文件可以選擇任意數量的項目。Django管理界面:使用horizontal_filter與內聯ManyToMany字段
目前,我已經有了「表格式」內聯視圖。有沒有辦法設置「水平過濾器」,以便我可以輕鬆地從用戶配置文件添加和刪除項目?
請參閱附圖中的示例。
這裏是爲用戶配置的型號代碼:
class UserProfile(models.Model):
user = models.OneToOneField(User, unique=True)
projects = models.ManyToManyField(Project, blank=True, help_text="Select the projects that this user is currently working on.")
而對於一個項目的型號代碼:
class Project(models.Model):
name = models.CharField(max_length=100, unique=True)
application_identifier = models.CharField(max_length=100)
type = models.IntegerField(choices=ProjectType)
account = models.ForeignKey(Account)
principle_investigator = models.ForeignKey(User)
active = models.BooleanField()
和視圖的管理代碼:
class UserProfileInline(admin.TabularInline):
model = UserProfile.projects.through
extra = 0
verbose_name = 'user'
verbose_name_plural = 'users'
class ProjectAdmin(admin.ModelAdmin):
list_display = ('name', 'application_identifier', 'type', 'account', 'active')
search_fields = ('name', 'application_identifier', 'account__name')
list_filter = ('type', 'active')
inlines = [UserProfileInline,]
admin.site.register(Project, ProjectAdmin)
非常感謝克里斯!這是第一次嘗試它時的魅力! – 2012-07-25 20:52:49
謝謝你,你是男人。 – whooot 2013-03-19 18:24:57
偉大的解決方案,對我很好。 – Blackeagle52 2015-11-10 12:05:23