私はインラインにしたいDjangoモデルフィールドを持っています。フィールドは多対多の関係です。したがって、「プロジェクト」と「ユーザープロファイル」があります。各ユーザープロファイルは、任意の数のプロジェクトを選択できます。Django管理インターフェース:インラインManyToManyフィールドでhorizontal_filterを使用
現在、「表形式」のインラインビューが機能しています。ユーザープロファイルからプロジェクトを簡単に追加したり削除したりできるように、「水平フィルタ」を使用する方法はありますか?
例については添付の図を参照してください。
は、ここでユーザープロファイルのためのモデルコードです:
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)
ありがとうございますChris!これは私が試した初めての魅力のように働いた! –
ありがとう、あなたは男です。 – whooot
偉大な解決策は、私のために素晴らしい仕事。 – Blackeagle52