P
25 января 2023 г. 15:01

Ввод бухгалтерского документа в одной форме

Добрый день! Вот такая задача - ввод бухгалтерского документа. Например, счет фактура. Есть таблица реквизитов документа (номер, дата, поставщик и т.д) и связанная с ней таблица позиций, т.е. табличная часть документа. Не подскажете, где в документации поискать что то подобное? Суть в том, как организовать ввод и сохранение связанных данных. Т.е. в одной форме длоны быть поля для заполнения реквизитов (шапки документа) и там же возможность добавления строк в табличную часть. Ну и сохранить полностью новый документ. Спасибо
p.s. Ну а за пример кода буду особо благодарен!:)

2

Вам это нравится? Поделитесь в социальных сетях!

4
NSProject
  • 25 января 2023 г. 20:30

Я вот думаю что это можно реализовать примерно таким образом:

  1. class Proguct(models.Model):
  2. name = models.CharField(max_lenght=100)
  3. # и тд
  4.  
  5. class Order(models.Model):
  6. numder = models.BigIntegerField()
  7. #provider = models.ForeignKey(User, on_delete=models.CASCADE) Один из двух вариантов.
  8. #provider = models.CharField(max_lenght=50)
  9. date = DateTimeField()
  10. product = models.ManyToManyField(Product)
  11.  
  12.  

В общем как то так. И как бы должно всё работать с множественным выбором продуктов.

    P
    • 25 января 2023 г. 20:43

    да,с моделями понятно, тем более они у меня есть. интересует, как реализовать форму ввода с шапкой и табличной частью...

      NSProject
      • 25 января 2023 г. 21:47

      А что подразумевается под табличной частью?
      По выводу в шаблоне всё делается очень просто. Форма может быть типа такой

      1. class OrderForm(forms.ModelForm):
      2. class Meta:
      3. model = Order
      4. fields = "__all__" # Либо те поля что нужны через запятую ["","",]
      5. widjets = {} # можно указать виджеты для поля
      6.  

      Далее уже выводите форму на странице создания или в модальном окне и как бы всё. Ну и отправку и сохранение уже реализуете как вам удобно.

        P
        • 25 января 2023 г. 22:01

        вопрос снят. спасибо за ответы. сообразил, как сделать:)

          Комментарии

          Только авторизованные пользователи могут публиковать комментарии.
          Пожалуйста, авторизуйтесь или зарегистрируйтесь