Что то не получается, приведу код.
clients/admin.py
from django.contrib import admin
from django import forms
from mysite.clients.models import Dop_adresa, Dop_telefoni, Dop_prazdniki, Lydi, Torg_marki, Clients, Doljnost, Dir_gendir
class LydiAdmin(admin.ModelAdmin):
list_display = ('familiya', 'imya', 'otchestvo')
search_fields = ('familiya',)
list_filter = ('den_rojdeniya', 'doljnost')
date_hierarchy = 'den_rojdeniya'
ordering = ('-familiya',)
filter_horizontal = ('doljnost',)
# raw_id_fields = ('doljnost',)
class Torg_markiForm(forms.ModelForm):
lydi = forms.ModelMultipleChoiceField(queryset=Lydi.objects.all())
model = Lydi
exclude = ('familiya',)
class Torg_markiAdmin(admin.ModelAdmin):
form = Torg_markiForm
admin.site.register(Dop_adresa)
admin.site.register(Dop_telefoni)
admin.site.register(Dop_prazdniki)
admin.site.register(Dir_gendir)
admin.site.register(Doljnost)
admin.site.register(Lydi, LydiAdmin)
admin.site.register(Torg_marki, Torg_markiAdmin)
admin.site.register(Clients)
clietns/models.py
# -- coding: utf-8 --
from django.db import models
class Dop_adresa(models.Model):
adres = models.CharField("адрес", max_length=100)
def __unicode__(self):
return u'%s' % (self.adres)
class Dop_telefoni(models.Model):
telefon = models.CharField("адрес", max_length=100)
def __unicode__(self):
return u'%s' % (self.telefon)
class Dop_prazdniki(models.Model):
name = models.CharField("название", max_length=100)
date = models.DateField("дата")
def __unicode__(self):
return u'%s %s' % (self.date, self.name)
class Doljnost(models.Model):
name = models.CharField("название", max_length=100)
def __unicode__(self):
return u'%s' % (self.name)
class Lydi(models.Model):
familiya = models.CharField("фамилия", max_length=100)
imya = models.CharField("имя", max_length=100)
otchestvo = models.CharField("отчество", max_length=100)
doljnost = models.ManyToManyField(Doljnost, verbose_name=u'должность')
den_rojdeniya = models.DateField("день рождения")
email = models.EmailField(blank=True)
icq = models.CharField(max_length=100, blank=True)
skype = models.CharField(max_length=100, blank=True)
foto = models.ImageField("фото", upload_to='/tmp', blank=True)
comments = models.CharField("комментарии", max_length=1000, blank=True)
def __unicode__(self):
return u'%s %s %s' % (self.familiya, self.imya, self.otchestvo)
class Torg_marki(models.Model):
name = models.CharField(max_length=100, verbose_name='Название')
logo = models.ImageField(upload_to='/tmp', blank=True, verbose_name='Логотип')
adresa = models.ManyToManyField(Dop_adresa, blank=True, verbose_name='Адреса')
lydi = models.ManyToManyField(Lydi, blank=True, verbose_name='Люди')
def __unicode__(self):
return u'%s' % (self.name)
class Dir_gendir(models.Model):
name = models.CharField("название", max_length=100)
def __unicode__(self):
return u'%s' % (self.name)
class Clients(models.Model):
name = models.CharField("название", max_length=100)
inn = models.CharField("ИНН", max_length=30)
ogrn = models.CharField("ОГРН", max_length=30)
cadro_s = models.CharField("КАДРО-С", max_length=30)
bik = models.CharField("БИК", max_length=30)
director_gendirector = models.ForeignKey(Dir_gendir, verbose_name='Директор/Ген.директор')
name_director = models.CharField("Имя директора(гендиректора)", max_length=30)
raschetniy_schet = models.CharField("расчетный счет", max_length=30)
yur_adres = models.CharField("юридический адрес", max_length=30)
fiz_adres = models.CharField("физический адрес", max_length=30, blank=True)
dop_adresa = models.ManyToManyField(Dop_adresa, blank=True, verbose_name='доп.адреса')
osnov_telefon = models.CharField("телефон", max_length=500)
faks = models.CharField("факс", max_length=500)
dop_telefoni = models.ManyToManyField(Dop_telefoni, blank=True, verbose_name='доп.телефоны')
den_rojdeniya_org = models.DateField("день рождения", blank=True, null=True)
dop_prazdniki = models.ManyToManyField(Dop_prazdniki, null=True, verbose_name='доп.праздники')
comments = models.CharField("комментарии", max_length=1000, null=True)
lydi = models.ManyToManyField(Lydi, null=True, verbose_name='люди')
torg_marki = models.ManyToManyField(Torg_marki, null=True, verbose_name='торговые марки')
После того, как сделал все по вашей рекомендации, из формы добавления торговых марок по прежнему можно выбирать видеть всех людей в форме добавления людей, но нельзя добавлять новых. а нужно сделать наоборот. Необходима возможность добавлять новых, но видеть не всех, а только добавленных текущей учетной записью админки.