Size: a a a

Django [ru] #STAY HOME

2019 April 24

AT

Alex Ted in Django [ru] #STAY HOME
перенес фк из модели sets в tasks
inline класс для sets вообще закомментил в админке
источник
2019 April 25

AS

Anatoly Shirokov in Django [ru] #STAY HOME
Ребят, вопрос по транзакциям. Например, я пишу сериализатор:
    # переопределяем метод создания, поскольку базовая реализация 
   # не поддерживает сохранение nested отношений
   def create(self, validated_data):
       logger.info("create product group")
       translations_data = validated_data.pop('translations')
       instance = super().create(validated_data)
       for translation in translations_data:
           ProductGroupTranslation.objects.create(group=instance, **translation)
       return instance

Мне надо открывать транзакцию самому, чтобы обеспечить "все или ничего" или это делает Django автоматически? Или где об этом прочесть? Спасибо!
источник

b

ḃ̵͇͠ā̵̙͐k̸̬͗a̵̝͔͊t̸̛̙ȓ̸̭͖o̶̗̯̐ū̵̘͒b̷̬̕l̶͒̏ė̷̯̑ in Django [ru] #STAY HOME
Anatoly Shirokov
Ребят, вопрос по транзакциям. Например, я пишу сериализатор:
    # переопределяем метод создания, поскольку базовая реализация 
   # не поддерживает сохранение nested отношений
   def create(self, validated_data):
       logger.info("create product group")
       translations_data = validated_data.pop('translations')
       instance = super().create(validated_data)
       for translation in translations_data:
           ProductGroupTranslation.objects.create(group=instance, **translation)
       return instance

Мне надо открывать транзакцию самому, чтобы обеспечить "все или ничего" или это делает Django автоматически? Или где об этом прочесть? Спасибо!
Декоратор transaction.atomic есть
источник

b

ḃ̵͇͠ā̵̙͐k̸̬͗a̵̝͔͊t̸̛̙ȓ̸̭͖o̶̗̯̐ū̵̘͒b̷̬̕l̶͒̏ė̷̯̑ in Django [ru] #STAY HOME
Или как-то в settings можно указать, чтобы на каждый запрос открывалась транзакция, не помню точно как
источник

AS

Anatoly Shirokov in Django [ru] #STAY HOME
ḃ̵͇͠ā̵̙͐k̸̬͗a̵̝͔͊t̸̛̙ȓ̸̭͖o̶̗̯̐ū̵̘͒b̷̬̕l̶͒̏ė̷̯̑
Или как-то в settings можно указать, чтобы на каждый запрос открывалась транзакция, не помню точно как
Спасибо большое!
источник

AS

Anatoly Shirokov in Django [ru] #STAY HOME
Anatoly Shirokov
Ребят, вопрос по транзакциям. Например, я пишу сериализатор:
    # переопределяем метод создания, поскольку базовая реализация 
   # не поддерживает сохранение nested отношений
   def create(self, validated_data):
       logger.info("create product group")
       translations_data = validated_data.pop('translations')
       instance = super().create(validated_data)
       for translation in translations_data:
           ProductGroupTranslation.objects.create(group=instance, **translation)
       return instance

Мне надо открывать транзакцию самому, чтобы обеспечить "все или ничего" или это делает Django автоматически? Или где об этом прочесть? Спасибо!
Остановился пока на глобальной настройке соединения: https://docs.djangoproject.com/en/2.2/ref/settings/#std:setting-DATABASE-ATOMIC_REQUESTS
источник

DB

Dmitry Bo in Django [ru] #STAY HOME
может есть у кого пример теста, который  в DRF загружает картинку? у меня прям сильно простое приложение, просто картинку сохраняет. То что нагуглилось чё-то у меня не завелось :(
источник

MK

Maxim Kolesnikov in Django [ru] #STAY HOME
Dmitry Bo
может есть у кого пример теста, который  в DRF загружает картинку? у меня прям сильно простое приложение, просто картинку сохраняет. То что нагуглилось чё-то у меня не завелось :(
Ну у меня в json поле для картинки принимает ее в base64. И в тесте, соответственно, base64 картинки.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Dmitry Bo
может есть у кого пример теста, который  в DRF загружает картинку? у меня прям сильно простое приложение, просто картинку сохраняет. То что нагуглилось чё-то у меня не завелось :(
источник

DB

Dmitry Bo in Django [ru] #STAY HOME
спасибо, пошел вкуривать!
источник

p

pavel in Django [ru] #STAY HOME
drf-yasg ? норм тема или обычного свагера хватит?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
pavel
drf-yasg ? норм тема или обычного свагера хватит?
норм
источник

S

Serj in Django [ru] #STAY HOME
Serj
Всем привет, нужна помощь:
Есть проект в одной части которого используется SqlAlchemy для сложной выборки данных. Нужно написать тесты для этой части (написанной с использованием SqlAlchemy), но столкнулся с проблемой:
Если, в setUp например, наполнять базу данными с помощью Django ORM, то алхимия эти данные видеть не будет (из-за изоляции). Да, я знаю что для этого случая придумали TransactionTestCase с которым все начинает работать как нужно, но он выполняется мучительно долго, чего хотелось бы избежать.
Также понимаю что можно написать эти тесты без использования Django ORM, тогда TestCase будет работать, но этого делать тоже не хочется, так как в таком случае нельзя будет использовать миксины написанные для заполнения БД тестовыми данными (они используют Django ORM).

Можно ли каким-то образом таки использовать Django ORM для создания тестовых данных, чтобы алхимия эти данные видела? Возможно алхимии нужно как-то подсунуть конекшн джанги к БД? Спасибо.
@dantyan извини за наглость, может подскажешь?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Serj
@dantyan извини за наглость, может подскажешь?
Django ORM, то алхимия эти данные видеть не будет
почему не видит ?

они с одной базой работают ?
источник

S

Serj in Django [ru] #STAY HOME
Dan Tyan
Django ORM, то алхимия эти данные видеть не будет
почему не видит ?

они с одной базой работают ?
Да, с одной
источник

DT

Dan Tyan in Django [ru] #STAY HOME
тогда не понимаю почему алхимия не видит данные
источник

S

Serj in Django [ru] #STAY HOME
Dan Tyan
тогда не понимаю почему алхимия не видит данные
Насколько я понимаю причина такая же
источник

S

Serj in Django [ru] #STAY HOME
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Serj
Насколько я понимаю причина такая же
Ну как вариант попробуй загрузить данные фикстурой
Но я все ещё не понимаю почему данные которые уже в базе не доступны
источник

S

Serj in Django [ru] #STAY HOME
Dan Tyan
Ну как вариант попробуй загрузить данные фикстурой
Но я все ещё не понимаю почему данные которые уже в базе не доступны
Фикстура тоже так себе решение - при любых изменениях БД скорее всего ее придется менять
источник