Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16

Name 'UnixDateTimeField' is not defined

25.02.2019, 20:58. Показов 1655. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
from django.db import models
from datetime import datetime
from time import strftime
 
 
# Create your models here.
 
class UnixTimestampField(models.DateTimeField):
    '''
    UnixTimestampField: создает DateTimeField, который представлен на
    база данных как поле TIMESTAMP, а не обычное поле DATETIME.
    '''
    def __init__(self, null=False, blank=False, **kwargs):
        super(UnixTimestampField, self).__init__(**kwargs)
        # default for TIMESTAMP is NOT NULL unlike most fields, so we have to
        # cheat a little:
        self.blank, self.isnull = blank, null
        self.null = True # To prevent the framework from shoving in "not null".
 
    def db_type(self):
        typ=['TIMESTAMP']
        # See above!
        if self.isnull:
            typ += ['NULL']
        if self.auto_created:
            typ += ['default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP']
        return ' '.join(typ)
 
    def to_python(self, value):
        return datetime.from_timestamp(value)
 
    def get_db_prep_value(self, value):
        if value==None:
            return None
        return strftime('%Y%m%d%H%M%S',value.timetuple())
 
 
class lead(models.Model):
    '''
    kanban - статус, данные записываются в таблицу kanban
    user - невидимое поле в которое записывать какой пользователь внес данные
    client - из юзерс - выбираем "клиента", с заранее указанным типом - клиент
    date - конвертируется в
    '''
    # created = models.DateTimeField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    created = UnixDateTimeField(
        auto_now_add=True,
        db_index=True,
        editable=False,
        null=False,
        blank=False
    )
    slug = models.SlugField(max_leght=60, unique=True)
    kanban = models.ForeignKey('kanban_type', on_delete=models.CASCADE)
    date_work = models.DateTimeField(blank=True, verbose_name="Время")
    client = models.ForeignKey(
        client,
        verbose_name="Ответственный",
        blank=True,
        null=True,
        on_delete=models.SET_NULL
    )
    responsible = models.ForeignKey(
        worker,
        verbose_name="Ответственный",
        blank=True,
        null=True,
        on_delete=models.SET_NULL
    )
    price = models.CharField(max_leght=15, verbose_name='Цена заявки')
    descr = models.CharField(blank=True, max_leght=300, verbose_name='Описание')
    expenses = models.ManyToManyField('exppenses')
    invoices = models.ManyToManyField('invoices')
    saldo = models.CharField(blank=True, verbose_name='Сальдо')
    created_by = models.ForeignKey(
        User,
        null=False,
        blank=False,
        editable=False,
        auto_created=True
    )
 
    def __str__(self):
        return self.text
 
    class Meta:
        verbose_name = 'Заявка'
        verbose_name_plural = 'Заявки'
 
    def save(self, *args, **kwargs):
        self.expenses.сумма_всех = self.expenses
        self.invoices.сумма_всех = self.invoices
        self.saldo = self.invoices - self.expenses
        self.saldo.save()
        super(saldo, self).save(*args, **kwargs)
 
 
class kanban_type(models.Model):
    '''
    Типы канбан в справочник
    '''
    created = models.DateTimeField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    name = models.CharField(max_leght=100, verbose_name='Этап заявки')
    desc = models.CharField(max_leght=500, verbose_name='Описание')
 
 
class expenses(models.Model):
    created = UnixDateTimeField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    type = models.CharField(max_leght=100, verbose_name='Расход')
    agent = models.ForeignKey(
        worker,
        verbose_name="Партнер",
        blank=True,
        null=True,
        on_delete=models.SET_NULL
    )
    bank_account = models.ForeignKey(bank_account)
    sum = models.CharField(max_leght=20, verbose_name='Сумма РКО')
    created_by = models.ForeignKey(
        User,
        null=False,
        blank=False,
        editable=False,
        auto_created=True
    )
 
class expenses_type(models.Model):
    created = UnixDateTimeField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    name = models.CharField(max_leght=100, verbose_name='Вид ПКО')
    desc = models.CharField(max_leght=500, verbose_name='Описание')
    bank_account = models.ForeignKey(bank_account)
 
 
class invoices(models.Model):
    created = UnixDateTimeField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    bank_account = models.ForeignKey(bank_account)
    created_by = models.ForeignKey(
        User,
        null=False,
        blank=False,
        editable=False,
        auto_created=True
    )
 
 
class invoices_type(models.Model):
    created = UnixDateTimeField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    name = models.CharField(max_leght=100, verbose_name='Вид РКО')
    desc = models.CharField(max_leght=500, verbose_name='Описание')
 
class bank_account(models.Model):
    created = UnixDateTimeField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    name = models.CharField(max_leght=100, verbose_name='Вид РКО')
    desc = models.CharField(max_leght=500, verbose_name='Описание')



в этом коде возникает ошибка name 'UnixDateTimeField' is not defined

Я хочу created = сделать автоматически добавлением текущей даты и времени переводить в юникс.тайм и использовать как primary_key
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.02.2019, 20:58
Ответы с готовыми решениями:

Объявляя as new DataObject "Compile error: User-defined type not defined
Перепроверяя код несколько раз я убедился в правильности и решил перезапустить Excel и скопировать текст в новый макрос (до этого ругался...

Ошибка `user-defined type not defined`. VBA для OneNote
Используется Win-7; Excel-2016; OneNote-2016. Пробую выполнить пример согласно этой статьи: "Navigating to a Notebook in...

Access выдает ошибку application-defined or object-defined error
Доброго времени суток!!! Прошу помощи ибо поиск по форуму так и не помог((( При выполнении кода access вот так ругается...

7
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
25.02.2019, 21:04
Лучший ответ Сообщение было отмечено IRIP как решение

Решение

UnixTimestampField vs UnixDateTimeField ?
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
25.02.2019, 22:36  [ТС]
Jabbson, 0_о

нда... =)

Спасибо!

Добавлено через 1 час 12 минут
Jabbson, еще одна проблема

missing 1 required positional argument: 'on_delete'

Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
from django.db import models
from datetime import datetime
from time import strftime
from django.contrib.auth.models import User
 
# Create your models here.
 
class UnixTimestampField(models.DateTimeField):
    '''
    UnixTimestampField: создает DateTimeField, который представлен на
    база данных как поле TIMESTAMP, а не обычное поле DATETIME.
    '''
    def __init__(self, null=False, blank=False, **kwargs):
        super(UnixTimestampField, self).__init__(**kwargs)
        # default for TIMESTAMP is NOT NULL unlike most fields, so we have to
        # cheat a little:
        self.blank, self.isnull = blank, null
        self.null = True # To prevent the framework from shoving in "not null".
 
    def db_type(self):
        typ=['TIMESTAMP']
        # See above!
        if self.isnull:
            typ += ['NULL']
        if self.auto_created:
            typ += ['default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP']
        return ' '.join(typ)
 
    def to_python(self, value):
        return datetime.from_timestamp(value)
 
    def get_db_prep_value(self, value):
        if value==None:
            return None
        return strftime('%Y%m%d%H%M%S',value.timetuple())
 
 
class lead(models.Model):
    '''
    kanban - статус, данные записываются в таблицу kanban
    user - невидимое поле в которое записывать какой пользователь внес данные
    client - из юзерс - выбираем "клиента", с заранее указанным типом - клиент
    date - конвертируется в
    '''
    # created = models.DateTimeField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    created = UnixTimestampField(
        auto_now_add=True,
        db_index=True,
        editable=False,
        null=False,
        blank=False
    )
    slug = models.SlugField(max_length=60, unique=True)
    kanban = models.ForeignKey('kanban_type', on_delete=models.CASCADE)
    date_work = models.DateTimeField(blank=True, verbose_name="Время")
    # client = models.ForeignKey(
    #     client,
    #     verbose_name="Ответственный",
    #     blank=True,
    #     null=True,
    #     on_delete=models.SET_NULL
    # )
    # responsible = models.ForeignKey(
    #     worker,
    #     verbose_name="Ответственный",
    #     blank=True,
    #     null=True,
    #     on_delete=models.SET_NULL
    # )
    price = models.CharField(max_length=15, verbose_name='Цена заявки')
    descr = models.CharField(blank=True, max_length=300, verbose_name='Описание')
    expenses = models.ManyToManyField('exppenses')
    invoices = models.ManyToManyField('invoices')
    saldo = models.CharField(blank=True, verbose_name='Сальдо')
    # created_by = models.ForeignKey(
    #     User,
    #     null=False,
    #     blank=False,
    #     editable=False,
    #     auto_created=True
    # )
 
    def __str__(self):
        return self.text
 
    class Meta:
        verbose_name = 'Заявка'
        verbose_name_plural = 'Заявки'
 
    def save(self, *args, **kwargs):
        self.expenses.сумма_всех = self.expenses
        self.invoices.сумма_всех = self.invoices
        self.saldo = self.invoices - self.expenses
        self.saldo.save()
        super(saldo, self).save(*args, **kwargs)
 
 
class kanban_type(models.Model):
    '''
    Типы канбан в справочник
    '''
    created = models.DateTimeField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    name = models.CharField(max_length=100, verbose_name='Этап заявки')
    desc = models.CharField(max_length=500, verbose_name='Описание')
 
 
class expenses(models.Model):
    created = UnixTimestampField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    type = models.CharField(max_length=100, verbose_name='Расход')
    # agent = models.ForeignKey(
    #     worker,
    #     verbose_name="Партнер",
    #     blank=True,
    #     null=True,
    #     on_delete=models.SET_NULL
    # )
    bank_account = models.ForeignKey('bank_account')
    sum = models.CharField(max_length=20, verbose_name='Сумма РКО')
    created_by = models.ForeignKey(
        User,
        null=False,
        blank=False,
        editable=False,
        auto_created=True
    )
 
class expenses_type(models.Model):
    created = UnixTimestampField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    name = models.CharField(max_length=100, verbose_name='Вид ПКО')
    desc = models.CharField(max_length=500, verbose_name='Описание')
    bank_account = models.ForeignKey('bank_account', on_delete=models.CASCADE)
 
 
class invoices(models.Model):
    created = UnixTimestampField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    bank_account = models.ForeignKey('bank_account', on_delete=models.CASCADE)
    created_by = models.ForeignKey(
        User,
        null=False,
        blank=False,
        editable=False,
        auto_created=True
    )
 
 
class invoices_type(models.Model):
    created = UnixTimestampField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    name = models.CharField(max_length=100, verbose_name='Вид РКО')
    desc = models.CharField(max_length=500, verbose_name='Описание')
 
class bank(models.Model):
    created = UnixTimestampField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    bank_account = models.CharField(max_length=100, verbose_name='Вид РКО')
    desc = models.CharField(max_length=500, verbose_name='Описание')


я уже даже pycharm поставил, может он ошибки сможет отлавливать ...

но что-то не понятное
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
25.02.2019, 22:41
bank_account = models.ForeignKey('bank_account')

не хватает on_delete

Добавлено через 1 минуту
ну и везде, где ForeignKey
1
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
25.02.2019, 22:45  [ТС]
Jabbson, если немного отойти от темы, на сколько вы считаете такой код живучим?

Цель - учет заказов и денег, оплаченных по заказам
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
25.02.2019, 23:09
Помимо архитектуры и исполнения, живучесть кода меряется ожиданиями и терпимостью, а проверяется временем, поэтому хз. Это ж надо все прочитать, осознать, требования к системе понимать, как можно вот так взять и сразу сказать - да, код, мол, збс.
1
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
26.02.2019, 00:16  [ТС]
Jabbson, я его запустил =) И вроде даже работает =)

пароль админки root (irip@bk.ru) / 123456

Только возникают ошибки, например, при добавлении банковского счета

TypeError: get_db_prep_value() got an unexpected keyword argument 'connection'
[25/Feb/2019 21:10:14] "POST /admin/leads/bank_account/add/?_to_field=id&_popup=1 HTTP/1.1" 500 176133
Вложения
Тип файла: zip backend.zip (1.26 Мб, 7 просмотров)
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
26.02.2019, 02:47  [ТС]
При создании заявки (лида)
когда выбираешь несколько расходов

Добавлено через 10 минут
И еще, у меня везде там идет работа с bank_account

во многих местах используются "минусы" и "плюсы" на указанные счета

имеет ли смысл где-то эти суммы "фиксировать"? Или же, как сейчас - важно отражать только итог сделки?

Добавлено через 1 час 48 минут
* * *

при попытке сохранить expenses

NOT NULL constraint failed: leads_expenses.created_by_id

Добавлено через 30 минут
Полный текст ошибки

Кликните здесь для просмотра всего текста
Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/admin/leads/expenses/add/

Django Version: 2.1.7
Python Version: 3.6.7
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'leads']
Installed Middleware:
['django.middleware.security.SecurityMidd leware',
'django.contrib.sessions.middleware.Sess ionMiddleware',
'django.middleware.common.CommonMiddlewa re',
'django.middleware.csrf.CsrfViewMiddlewa re',
'django.contrib.auth.middleware.Authenti cationMiddleware',
'django.contrib.messages.middleware.Mess ageMiddleware',
'django.middleware.clickjacking.XFrameOp tionsMiddleware']



Traceback:

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py" in execute
298. return Database.Cursor.execute(self, query, params)

The above exception (NOT NULL constraint failed: leads_expenses.created_by_id) was the direct cause of the following exception:

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
34. response = get_response(request)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
126. response = self.process_exception_by_middleware(e, request)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
124. response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/contrib/admin/options.py" in wrapper
604. return self.admin_site.admin_view(view)(*args, **kwargs)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
44. response = view_func(request, *args, **kwargs)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/contrib/admin/sites.py" in inner
223. return view(request, *args, **kwargs)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/contrib/admin/options.py" in add_view
1637. return self.changeform_view(request, None, form_url, extra_context)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapper
45. return bound_method(*args, **kwargs)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/contrib/admin/options.py" in changeform_view
1525. return self._changeform_view(request, object_id, form_url, extra_context)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/contrib/admin/options.py" in _changeform_view
1564. self.save_model(request, new_object, form, not add)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/contrib/admin/options.py" in save_model
1091. obj.save()

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/models/base.py" in save
718. force_update=force_update, update_fields=update_fields)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/models/base.py" in save_base
748. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/models/base.py" in _save_table
831. result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/models/base.py" in _do_insert
869. using=using, raw=raw)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/models/manager.py" in manager_method
82. return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/models/query.py" in _insert
1136. return query.get_compiler(using=using).execute_ sql(return_id)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in execute_sql
1289. cursor.execute(sql, params)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
100. return super().execute(sql, params)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in execute
68. return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute_with_wrappers
77. return executor(sql, params, many, context)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/utils.py" in __exit__
89. raise dj_exc_value.with_traceback(traceback) from exc_value

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/backends/utils.py" in _execute
85. return self.cursor.execute(sql, params)

File "/home/kalina/dezzakaz/venv/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py" in execute
298. return Database.Cursor.execute(self, query, params)

Exception Type: IntegrityError at /admin/leads/expenses/add/
Exception Value: NOT NULL constraint failed: leads_expenses.created_by_id



и сам код

Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
from django.db import models
from django.contrib.auth.models import User
import uuid
 
# Create your models here.
 
class lead(models.Model):
    '''
    kanban - статус, данные записываются в таблицу kanban
    user - невидимое поле в которое записывать какой пользователь внес данные
    client - из юзерс - выбираем "клиента", с заранее указанным типом - клиент
    date - конвертируется в
    '''
    created = models.DateField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    slug = models.SlugField(max_length=50, allow_unicode=True)
    # slug = models.SlugField(max_length=60, unique=True)
    kanban = models.ForeignKey('kanban_type', on_delete=models.CASCADE)
    date_work = models.DateTimeField(blank=True, verbose_name="Дата исполнения")
    # client = models.ForeignKey(
    #     client,
    #     verbose_name="Ответственный",
    #     blank=True,
    #     null=True,
    #     on_delete=models.SET_NULL
    # )
    # responsible = models.ForeignKey(
    #     worker,
    #     verbose_name="Ответственный",
    #     blank=True,
    #     null=True,
    #     on_delete=models.SET_NULL
    # )
    price = models.CharField(max_length=15, verbose_name='Цена заявки')
    descr = models.CharField(blank=True, max_length=300, verbose_name='Описание')
    expenses = models.ManyToManyField('expenses', verbose_name='Затраты')
    invoices = models.ManyToManyField('invoices', verbose_name='Приход')
    saldo = models.CharField(max_length=100, blank=True, verbose_name='Сальдо')
    # created_by = models.ForeignKey(
    #     User,
    #     null=False,
    #     blank=False,
    #     editable=False,
    #     auto_created=True
    # )
 
    def __str__(self):
        return self.text
 
    class Meta:
        verbose_name = 'Заявка'
        verbose_name_plural = 'Заявки'
 
    def save(self, *args, **kwargs):
        self.expenses.сумма_всех = self.expenses
        self.invoices.сумма_всех = self.invoices
        self.saldo = self.invoices - self.expenses
        self.saldo.save()
        super(saldo, self).save(*args, **kwargs)
 
 
class kanban_type(models.Model):
    '''
    Типы канбан в справочник
    '''
    created = models.DateField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    name = models.CharField(max_length=100, verbose_name='Этап заявки')
    desc = models.CharField(max_length=500, verbose_name='Описание')
 
    def __str__(self):
        return self.name
 
    class Meta:
        verbose_name = 'Статус заявки'
        verbose_name_plural = 'Статусы заявок'
 
class expenses(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    created = models.DateField(auto_now_add=True, unique=True, db_index=True, editable=False)
    sum = models.CharField(max_length=20, verbose_name='Сумма ПКО')
    desc = models.TextField(max_length=500, null=True, blank=True, verbose_name='Описание')
    type = models.ForeignKey('expenses_type', max_length=100, verbose_name='Тип расхода', on_delete=models.CASCADE)
    bank_account = models.ForeignKey('bank_account', verbose_name='Счет РАСХОДА', null=True, on_delete=models.CASCADE)
    created_by = models.ForeignKey(
        User,
        null=False,
        blank=False,
        editable=False,
        auto_created=True,
        on_delete=models.CASCADE
    )
 
    def __str__(self):
        return self.sum
 
    class Meta:
        verbose_name = 'Расход'
        verbose_name_plural = 'Расходы'
 
 
class expenses_type(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    created = models.DateField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    name = models.CharField(max_length=100, verbose_name='Название расходного ордера')
    desc = models.CharField(max_length=500, blank=True, null=True, verbose_name='Описание')
 
    def __str__(self):
        return self.name
 
    class Meta:
        verbose_name = 'Тип расхода'
        verbose_name_plural = 'Типы расходов'
 
 
class invoices(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    created = models.DateField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    bank_account = models.ForeignKey('bank_account', on_delete=models.CASCADE)
    created_by = models.ForeignKey(
        User,
        null=False,
        blank=False,
        editable=False,
        auto_created=True,
        on_delete=models.CASCADE
    )
 
    def __str__(self):
        return self.bank_account
 
    class Meta:
        verbose_name = 'ПКО'
        verbose_name_plural = 'Приходные ордера'
 
 
class invoices_type(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    created = models.DateField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    name = models.CharField(max_length=100, verbose_name='Вид РКО')
    desc = models.CharField(max_length=500, null=True, blank=True, verbose_name='Описание')
 
    def __str__(self):
        return self.name
 
    class Meta:
        verbose_name = 'Тип ПКО'
        verbose_name_plural = 'Виды приходных ордеров'
 
class bank_account(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    created = models.DateField(auto_now_add=True, db_index=True, editable=False, null=False, blank=False)
    account = models.CharField(max_length=100, verbose_name='Название счета')
    desc = models.CharField(max_length=500, null=True, blank=True, verbose_name='Описание')
    def __str__(self):
        return self.account
    class Meta:
        verbose_name = 'Счет'
        verbose_name_plural = 'Счета (нал, безнал)'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.02.2019, 02:47
Помогаю со студенческими работами здесь

Compile error: User-defined type not defined помогите разобраться
Есть код: Private Sub Поле1_GotFocus() Dim dbs As Database Dim rst As Recordset Dim strSQL As String Set...

'User - defined type not defined' при запуске моей процедуры
Здравствуйте, меня зовут Сергей. Я - тот, кого называют чайником в вопросах программирования (экономист по образованию). Так получилось,...

Ошибка 1004 Application-defined or object-defined error access
Всем доброго дня, не могу понять в чем проблема. В ACCESS создаю таблицу, и через VBA скидываю содержание таблицы в шаблон созданный в...

User-defined type not defined. Ругается на объявление корневой процедуры
Привет! Поискал решение, не нашел, давно не обращался за помощью на форум так вот ругается на первую же строчку кода, т.е. на "Sub...

Ошибка при создании диаграммы (Application defined or object defined error 1004)
Добрый день. Пытаюсь создать диаграмму,но выдает ошибку Application defined or object defined error 1004 При нажатии Debug выделяет:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru