ребят помогите пожалуйста добавить в админку d1.6 поле типа select
вы хотите добавить choices в админку , но по коду , который вы прислали,
class SponsorsForm(ModelForm):
class Meta:
model = Sponsors
background_color = forms.ChoiceField(choices=CHOICES)
вы добавляете choices в класс формы.
Поля из формы в БД никак не попадут.
Это действительно так. Нужно различать классы, которые наследуются от ModelForm-- это классы формы. А классы , кот. наследуются от models.Model-- это классы моделей--именно классы моделей, это тот мостик между БД и всем остальным, что написано в джанго на питоне. Django orm -- (почитайте про orm вообще )
вот несколько рабочих примеров
из файла forms:
def list_num():
num=list()
for n in xrange(1,11):
n=unicode(n)
num.append((n,n))
return num
def list_cod_or_bankcard():
return [(u'наложенный платеж',u'наложенный платеж'),(u'банковская карта',u'банковская карта')] # тут ,конечно, можно было организовать как обычный список списков, но тут сейчас исправлять не буду))
class Homepage_Form(forms.Form):
num=forms.ChoiceField(label=label_buy_num,widget=forms.Select, choices=list_num())
class Orders_Form(forms.Form):
cod_or_bankcard=forms.ChoiceField(widget=forms.Select,#используем выпадающий список
choices=list_cod_or_bankcard() )
в файле models использование choise:
def list_payment_method():
payment_method_list=[(u'банковская карта',u'банковская карта'),
(u'наложенный платеж',u'наложенный платеж') ]
return payment_method_list
class Orders(models.Model):
payment_method=models.CharField(verbose_name=u'Метод оплаты',
max_length=1000,
choices=list_payment_method())
CHOICES = ('volvo', 'saab', 'opel', 'audi', 'cyan',)
заметьте , у вас это просто список, хотя дожен быть список списков (ну или кортеж кортежей)-- в доках об этом есть, почитайте.
Если воспользоваться идеями из кусков кода, которые я привел, то в admin можно сильно не мудрить и просто прописать модели и все.