2016-07-18 8 views
0

Мне нужна помощь со многими для многих в администраторе django. Мои значения, сохраненные в командных моделях, не отображаются в моей секции участника. Выпадающий список пуст, и в моей команде модели admin данные отображаются только в разделе фильтра, но не в основном списке. Вот мои модели:Как я могу отображать свои данные в админке из многих во многие поля в django?

DEPARTMENT = (

    ('C', 'Children'), 
    ('C', 'Choir'), 
    ('C', 'Cleaning'), 

) 
class Team(models.Model): 
    name = models.CharField(choices=DEPARTMENT, max_length=10) 
    member = models.ManyToManyField('Member', related_name='team') 

    class Meta: 
     verbose_name = 'Team' 

    def __str__(self): 
     return self.name 


class Member(models.Model): 
    surname = models.CharField(max_length=20) 
    names = models.CharField(max_length=50) 
    gender = models.CharField(choices=GENDER, max_length=1) 
    dob = models.DateField() 
    contact_number = models.CharField(max_length=14, help_text="+27740000000") 
    email = models.EmailField(help_text='your email address') 
    address = models.CharField(max_length=50, help_text="you street, number, complex name only") 
    suburb = models.CharField(max_length=20, help_text="your suburb") 
    area_code = models.IntegerField(help_text="0000") 
    province = models.CharField(max_length=1, choices=PROVINCE) 
    occupation = models.CharField(max_length=30, help_text="Your daily occupation") 
    registered_date = models.DateField(default=timezone.now) 

    def __str__(self): 
     return self.surname 

и в админке:

class TeamInline(admin.TabularInline): 
    model = Team.member.through 
    extra = 1 


@admin.register(Member) 
class MemberAdmin(admin.ModelAdmin): 
    list_display = ('surname', 'names', 'email', 'contact_number', 'suburb') 
    fieldsets = (
     ('Member personal details', { 
      'classes': ('grp-collapse grp-open',), 
      'fields': ('surname', 'names', 'gender', 'dob', 'contact_number', 'email', 
         'address', 'suburb', 'area_code', 'province', 'occupation', 'registered_date', 
         ), 
    }), 
    ) 
    list_filter = ['surname', 'email', 'suburb'] 
    inlines = [MaritalInline, TeamInline, MembershipInline,] 


@admin.register(Team) 
class TeamAdmin(admin.ModelAdmin): 
    list_display = ('name',) 
    fieldsets = (
     ('Team details', { 
      'fields': ('name',), 
    }), 
    ) 
    list_filter = ['name', ] 
    inlines = [TeamInline, ] 

и вот мой скриншот:

+0

Как все решения «ОТДЕЛ» имеют одинаковое значение? –

+0

Что вы имеете в виду одно и то же значение? – butnalobi

+0

'choice' - это список кортежей' (value, verbose_name) ', все ваши значения' 'C''. –

ответ

0

Inlines для связанных отношений, а не многих-ко-многим. Вы должны использовать поле формы. По умолчанию <select multiple>, который не очень привлекателен, но вы можете сделать его более сексуальным с select2, например (см. Также django-autocomplete-light, чтобы облегчить интеграцию select2 с Django) или create a custom field или widget.

+0

спасибо, но как вы можете использовать select2 в админке? а также эта строка в командной строке правильная модель = Team.member.through ?? или я должен полностью удалить команду. и не возражаете ли вы более подробно о том, как заставить его работать? спасибо @AntoinePinsard – butnalobi

+0

Все, что вам нужно, это ссылки, которые я указал, нет единого решения. Вам решать прочитать документы. И этот вопрос был задан, как будто я не знаю, сколько раз: http://stackoverflow.com/search?q=django+admin+many-to-many+widget –

+0

ладно еще раз, проверит его – butnalobi

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