CharField с множественным выбором choices

категория: Django
Было такое задание - написать поле с выбором в админке из слов: копирайтинг, рерайтинг, SEO-копирайтинг, SEO-рерайтинг. Вспомнил про атрибут полей "choices". Полем модели стало конечно же Charfield, ну и понадобился кортеж значений, назвал его CHOISES. Все получилось, не знаю правильна ли реализация, если что пишем - как сделать лучше, не стесняемся :). Модель получилась такая:
from django.db import models
# Выбор типа работы, первое значение сохраняется в базе, 
# второе для пользователя
CHOISES = (
    (u'Копирайтинг', 'Копирайтинг'),
    (u'Рерайтинг', 'Рерайтинг'),
    (u'SEO-копирайтинг', 'SEO-копирайтинг'),
    (u'SEO-рерайтинг','SEO-рерайтинг'),
)
# Модель для портфолио
class Works(models.Model):
  ...
  choises = models.CharField("Выбор", max_length=16, 
    choices=CHOISES, default="Копирайтинг")
  ...
В admin.py добавляем choises в fieldsets и, если нужно, в list_display. Выбор будет отображаться в виде выпадающего списка. Я сделал в виде радио-выбора в горизонтальным порядке - чтобы лишний раз заказчик не кликал :)
radio_fields = {"choises": admin.HORIZONTAL}
Ну и понятное дело в темплейте выводим переменную {{ work.choises }} из списка объектов object_list.


blog comments powered by Disqus