@ixotep

Django модель для хранения плана и факта номенклатуры, как реализовать?

Добрый день! Задача стоит следующая:
Есть список запчастей (не снижаемый остаток) который должен быть в автомобиле, надо реализовать БД таким образом что на разных автомобилях должны быть разные (но могут быть и одинаковые) запчасти и разное количество.
Я сделал модель автомобиля, номенклатуры и ед.измерения:
class Car(models.Model):
    driver = models.OneToOneField(User, on_delete=models.PROTECT, related_name='dr_excavator', blank=True,
                                  verbose_name='Учетная запись')
    title = models.CharField(verbose_name='Наименование автомобиля', max_length=20, blank=False)

    class Meta:
        verbose_name = 'Автомобиль'
        verbose_name_plural = 'Автомобили'

    def __str__(self):
        return self.title


class Units(models.Model):
    title = models.CharField(verbose_name='Ед.изм.', max_length=10, blank=False)

    class Meta:
        verbose_name = 'Ед.изм.'
        verbose_name_plural = 'Ед.изм.'

    def __str__(self):
        return self.title


class Nomenclature(models.Model):
    title = models.CharField(max_length=300, verbose_name='Наименование', blank=False)
    units = models.ForeignKey(Units, on_delete=models.PROTECT, related_name='nom_units', verbose_name='Ед.изм.')
  

    class Meta:
        verbose_name = 'Номенклатура'
        verbose_name_plural = 'Номенклатура'

    def __str__(self):
        return self.title


Но как объединить в одну таблицу в которой будет остаток по плану, остаток по факту и редактирование этого из админки не могу понять. Пните в нужную сторону... За ранее спасибо!
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
@szelga
насколько я понял задачу, в первом приближении я бы сделал её так:
1. в модель номенклатуры добавить целочисленные поля для остатков по плану и по факту.
2. добавить модель для неснижаемых остатков: по ForeignKey для Car и Nomenclature и целочисленное поле собственно для значения.
3. если надо (в чём я не уверен), добавить модель для фактических остатков, приписанных к единице техники. поля те же самые, что и в предыдущем пункте.
4. редактировать сперва в админке Django, затем понаписать разных View, в которых запихать бизнес-логику (прежде всего, ограничения), чтобы эксплуатационщики и кладовщики почём зря не лезли в админку.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы