2010-11-23 6 views
0

Hier sind meine Modelle:Mit Djangos ManyToManyField mit vordefinierten Zwischenmodell

class Groups(models.Model):  
    group_id = models.AutoField(primary_key=True) 
    group_name = models.CharField(max_length=20,db_index=True) 
    #Some other fields 
    admins = models.ManyToManyField(Users, through='GroupAdmin') 

class Users(models.Model): 
    user_id = models.AutoField(primary_key=True) 
    #Some other fields... 
    name_text = models.CharField(max_length=20) 

class GroupAdmin(models.Model): 
    group_admin_id = models.AutoField(primary_key=True) 
    user = models.ForeignKey(Users) 
    group = models.ForeignKey(Groups) 

Dann habe ich diese ModelAdmin definiert

class GroupAdminAdmin(admin.ModelAdmin): 
    filter_horizontal = ['user'] 

admin.site.register(GroupAdmin, GroupAdminAdmin) 

Aus irgendwelchen Gründen, die ich nach wie vor nicht in der Lage bin ich halten, um herauszufinden, bekommen der folgende Fehler auf meiner Webseite, wenn ich versuche, damit zu arbeiten.

ImproperlyConfigured at /admin/mysite 
'GroupAdminAdmin.filter_horizontal[0]' must be a ManyToManyField. 

Was mache ich falsch?

Antwort

0

Sie können das horizontale Filterwidget-Widget nicht auf einem ForeignKey verwenden (was kaum sinnvoll wäre, da es nur auf ein Objekt verweisen kann, während das Hauptziel des Widgets darin besteht, einfach mehr als ein Objekt auszuwählen). Sie könnten es auf Ihrem admin für Groups für das Feld admins verwenden oder Sie verwenden einen Inline-Administrator dort, um die einfache Erstellung von neuen Users Objekte zu ermöglichen.

+0

Ach ja, natürlich. Das Feld 'ModelMultipleChoiceField' wird jedoch immer noch nicht angezeigt – domino

Verwandte Themen