Size: a a a

Django [ru] #STAY HOME

2020 October 17

MS

Milena Solovyeva in Django [ru] #STAY HOME
Vitaliy Derbentsev
Uuid чем генерятся и на каком этапе?
источник

MS

Milena Solovyeva in Django [ru] #STAY HOME
UUID по-идее должен генерироваться вместо id еще в классе Book
источник

И

Илья in Django [ru] #STAY HOME
Vitaliy Derbentsev
Включить этот язык?
<!-- Current language: en-us -->
Включаю пишет, что выбрал нужный. По умолчанию немецкий, а текст не меняется
источник

MS

Milena Solovyeva in Django [ru] #STAY HOME
class Book(models.Model):
   id = models.UUIDField(primary_key=True, default=uuid.uuid4(), editable=False)
   title = models.CharField(max_length=255)
   author = models.CharField(max_length=200)
   price = models.DecimalField(max_digits=6, decimal_places=2)
источник

MS

Milena Solovyeva in Django [ru] #STAY HOME
все
источник

MS

Milena Solovyeva in Django [ru] #STAY HOME
нашла ошибку
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
unique=True в поле, генерирть не дефолтом, а отдельным методом, в save проверять что None и вызывать генератор
источник

MS

Milena Solovyeva in Django [ru] #STAY HOME
Nikolay Cherniy
unique=True в поле, генерирть не дефолтом, а отдельным методом, в save проверять что None и вызывать генератор
ну или просто убрать () возле uuid4 😄
источник

VD

Vitaliy Derbentsev in Django [ru] #STAY HOME
Ну, все правильно работает. На этапе определения класса и создания полей вычисляется значение uuid4 и присваивается как значение по умолчанию. Одно на всех. А надо, чтобы генерился каждый раз новый. Поэтому, в качестве default ставим не результат вызова функции, а саму эту функцию, чтобы джанга ее каждый раз дёргала при создании модели.
источник

VD

Vitaliy Derbentsev in Django [ru] #STAY HOME
Скобки вызова убираем
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Milena Solovyeva
ну или просто убрать () возле uuid4 😄
Это правильно но не страхует от дублирования, хотя вероятность конечно мала
источник

MS

Milena Solovyeva in Django [ru] #STAY HOME
ну а если совсем, что бы даже вероятности не было, можете привести пример кода?
источник

VD

Vitaliy Derbentsev in Django [ru] #STAY HOME
Nikolay Cherniy
Это правильно но не страхует от дублирования, хотя вероятность конечно мала
Страхует по своей сути uuid, если алгоритм генерации реализован как положено, а не как попало.
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Vitaliy Derbentsev
Страхует по своей сути uuid, если алгоритм генерации реализован как положено, а не как попало.
Я и еще один участник чата сталкивались с дублированием.
источник

VD

Vitaliy Derbentsev in Django [ru] #STAY HOME
Увы, стало быть генератор кривой, косой и хромой...
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Milena Solovyeva
ну а если совсем, что бы даже вероятности не было, можете привести пример кода?
В сэйве вызываешь метод, в методе цикл с условием while Model.objects.filter(field_name=generatedUuid).exists(): generate_uuid
источник

VD

Vitaliy Derbentsev in Django [ru] #STAY HOME
Хотя, знавал одного деятеля когда-то... Он их генерил случайными числами. Псевдослучайными 🤦‍♂
источник

В

Василий in Django [ru] #STAY HOME
Привет, народ!Помогите плз с формами. Я хочу на одной странице использовать несколько форм(modelForm) из связанных моделей через FK. Я рендерю несколько форм в шаблон, но при сохранении в бд, у меня выдается ошибка: NOT NULL constraint failed: funsite_partner.partner_email_id. Я так понимаю, что джанга не может сохранить в бд запись, т.к. не получает id почты. Я уже в стопоре) Столько раз переписывал, но все не то) Помогите понять что делаю не так.
https://pastebin.com/hNMydFBK
https://pastebin.com/qDNNNU5U
https://pastebin.com/L93cHGi4

Я явно уже заблудился в 3-х соснах)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Василий
Привет, народ!Помогите плз с формами. Я хочу на одной странице использовать несколько форм(modelForm) из связанных моделей через FK. Я рендерю несколько форм в шаблон, но при сохранении в бд, у меня выдается ошибка: NOT NULL constraint failed: funsite_partner.partner_email_id. Я так понимаю, что джанга не может сохранить в бд запись, т.к. не получает id почты. Я уже в стопоре) Столько раз переписывал, но все не то) Помогите понять что делаю не так.
https://pastebin.com/hNMydFBK
https://pastebin.com/qDNNNU5U
https://pastebin.com/L93cHGi4

Я явно уже заблудился в 3-х соснах)
           email_obj = email_form.save()
           part_form.save(commit=False)
           part_form.partner_email = email_obj

так
попробуй
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Василий
Привет, народ!Помогите плз с формами. Я хочу на одной странице использовать несколько форм(modelForm) из связанных моделей через FK. Я рендерю несколько форм в шаблон, но при сохранении в бд, у меня выдается ошибка: NOT NULL constraint failed: funsite_partner.partner_email_id. Я так понимаю, что джанга не может сохранить в бд запись, т.к. не получает id почты. Я уже в стопоре) Столько раз переписывал, но все не то) Помогите понять что делаю не так.
https://pastebin.com/hNMydFBK
https://pastebin.com/qDNNNU5U
https://pastebin.com/L93cHGi4

Я явно уже заблудился в 3-х соснах)
Сохраняй по одному, после сохранения из сохраненного инстанса получай id для следущей формы
источник