Форум сайта python.su
Друзья блин такая проблема нужно сделать генератор отчетов(грубо говоря он будет страницу в ексель перегонять это не проблема) проблема с описанием модели заранее неизвестно что и как будет устроенно что вызывает лично у меня проблемы если бы все было одинаково описал бы модель и все наслаждайся.
По условию у нас есть 3 таблицы: основная структурное подразделение и название отчета
в первых двух столбцах основной храняться foreign. А остальные поля их штук 50 будет им как раз им нужно дать имена.
а чуть не забыл получается мне еще понадобиться сделать свобный отчет по всей таблице от сюда возникает проблема тем что поля еще и впоследствии менять нельзя.
Имена полей по идеи должен менять только админ(он собственно делает шапку таблицы)
Возник вопрос можно ли как то динамически дать имя столбцу? если нет то каким макаром можно решить эту задачу буду благодарен за любые советы
Офлайн
совет первый: яснее сформулируйте задачу, ничего не понятно что вы тут написали
Офлайн
Совет второй: используйте запятые.
Офлайн
Ладно ща попробую все красиво сформулировать.
Есть два интерфейса админка и пользовательский.
Пользователь заполняет форму, которая представляет из себя следующее: вниз спадающий спискок “Наименование структурного подразделения”, после выбора этого поля становится видным второй вниз спадающий список “Название отчета”.
После должна отрисоваться таблица которую внес администратор.
Вопросы:
1) можно ли вобще внести изменения в БД(не заполнить а именно что то создать, просто вроде как из прочитанной документации я понял, что мы должны все заранее создать(описать в models.py), или я где то ошибся?
2) как лучше всего реализовать БД для этой задачи, пока что я могу точно выделить две таблицы “название структурных подразделений” и “названия отчетов”
Офлайн
Задача - типичный classifieds - в реляционной алгебре решается мягко говоря плохо, но решается. Способов решения есть несколько и все следуют примерно такой схеме:
1. вводится описание схемы отчета, как правило это таблица следующего вида:
- fk на тип отчета (у вас “названия отчетов”)
- номер поля в отчете
- наименование поля в отчете
- тип поля (как правило выборка из нескольких заранее определенных возможных типов)
2. Вводится таблица отчетов с полями: тип отчета, дата заполнения отчета, кто заполнил и т.д. - в общем соль и сахар добавляете по вкусу.
3. Вводится таблица значений отчетов вида
- fk на поле (определен в первом пункте)
- fk на отчет (определен во втором пункте)
- номер записи в отчете
- значение (можно или тупо использовать строки в которые все конвертируется при сохранении, ну или использовать несколько полей для хранения значения каждого типа)
Это как бы строгое реляционное решение, которое в большинстве случаев страшно тормозит, поэтому придумывают различные ухищрения, связанные с денормализацией.
Лучше конечно для таких случаев использовать документоориентированную БД, конечно, если это возможно - там решение получится проще.
Офлайн
Сори за мою тупость но помогите немного с моделью ибо я просто не понимаю как это реализовать.
from django.db import models
class struct_pod(models.Model):
Name_pod = models.CharField(max_length=50)
def __Unicode__ (self):
return self.Name_pod
class name_otchet(models.Model):
name_otchet=models.CharField(max_length=50)
def __Unicode__ (self):
return self.name_otchet
class shema_otchet (models.Model):
struct_pod=models.ForeignKey(struct_pod)
name_otch=models.ForeignKey(name_otchet)
name_pol=models.CharField(max_length=200)
tip_pol=
def __Unicode__ (self):
return u'%s %s' % (self.name_pol, self.soder_pol)
class Meta:
ordering=['name_pol']
class tab_znach (models.Model):
shem_otch=models.ForeignKey(shema_otchet)
otchet=models.ForeignKey(name_otchet)
nomer_zap=
znachenie=
Tip_CHOICES= (
('','Числовое'),
('','Текст'),
)
Tip_pol = models.CharField(max_length=100, choices=Tip_CHOICES)
Офлайн
блин ну так что сделать то с моделью кто нить подскажет?
Офлайн
Офлайн
пля ну спасибо документацию по django я неделю уже курю!
ziro предложил решение я написал модель под это решение, просто я не совсем понял как будут устроены ТРИ поля, и спросил может кто понял и скажет мне!
я же не попросил всю модель мне написать, я прекрасно понимаю что это моя задача а не ваша
Офлайн
У тебя ошибки, как в русской речи, так и в коде (ошибки синтаксического, семантического плана).
Думааааа е шь прияЯТно сМотр еть вот тако
Е где Нич ЕгГго не Ясно
Офлайн