2010-11-23 2 views
0

Вот мои модели:Использование ManyToManyField Джанго с заранее определенной промежуточной модели

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) 

Тогда у меня есть этот ModelAdmin определенный

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

admin.site.register(GroupAdmin, GroupAdminAdmin) 

По некоторым причинам, которые я до сих пор не удалось выяснить, я получаю следующая ошибка на моей веб-странице всякий раз, когда я пытаюсь работать с этим.

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

Что я делаю неправильно?

ответ

0

Вы не можете использовать горизонтальный виджет фильтра на ForeignKey (что вряд ли имеет смысл, поскольку оно может ссылаться только на один объект, а главная цель виджета - легко выбрать более одного объекта). Вы можете использовать его у своего администратора для Groups для поля admins, или вы используете встроенный администратор там, чтобы обеспечить легкое создание новых объектов Users.

+0

Ах да, конечно. Я все еще не получаю поле ModelMultipleChoiceField. – domino 2010-11-23 15:41:07

Смежные вопросы