Size: a a a

Django [ru] #STAY HOME

2021 March 18

R

Roger in Django [ru] #STAY HOME
Сработала проверка так:
<img src=" {% if not article.photos.url %} {% static '/img/image.png' %} {% else %} {{ article.photos.url }} {% endif %} "alt="img" />
источник

R

Roman in Django [ru] #STAY HOME
e\/gen
эм, а я разве не про то же писал?) выпилить проверку на is None
ну да ладно )
ты же просто сказал,а тут человек сделал )))
источник

e

e\/gen in Django [ru] #STAY HOME
Roman
ты же просто сказал,а тут человек сделал )))
Да, не мешки ворочать)
источник

R

Roman in Django [ru] #STAY HOME
e\/gen
Да, не мешки ворочать)
вот вот )
источник

XM

X Man in Django [ru] #STAY HOME
ну, то же самое
источник

A

Alexander in Django [ru] #STAY HOME
Описание проблемы: Модель MainPage должна иметь запись SEO. Поэтому в представлении проверяется, есть ли в поле .seo (FK) номер записи.  Если же нет, то создаёт запись SEO, добавляет в запись MainPage и сохраняет MainPage. Вроде всё сохраняется, принтил в представлении, но когда отправляю в форме контекстом на страницу, то запись MainPage не имеет номера записи SEO. Так же при возврате (метод POST) при сохранении понятно, что получаю новый объект из формы.

Сокращённое представление: dpaste
Полное представление в проектом: github
источник

DO

D. Ouhh in Django [ru] #STAY HOME
привет. нужно после вьюхи сохранить некоторые данные в бд. так чтоб юзеру не нужно было ждать. как это лучше сделать? селери не хочу для такой простой задачи на одну вьюшку.
источник

A

Alexander in Django [ru] #STAY HOME
D. Ouhh
привет. нужно после вьюхи сохранить некоторые данные в бд. так чтоб юзеру не нужно было ждать. как это лучше сделать? селери не хочу для такой простой задачи на одну вьюшку.
Сделай асинхронный процесс. Asyncio
источник

D

D in Django [ru] #STAY HOME
Alexander
Описание проблемы: Модель MainPage должна иметь запись SEO. Поэтому в представлении проверяется, есть ли в поле .seo (FK) номер записи.  Если же нет, то создаёт запись SEO, добавляет в запись MainPage и сохраняет MainPage. Вроде всё сохраняется, принтил в представлении, но когда отправляю в форме контекстом на страницу, то запись MainPage не имеет номера записи SEO. Так же при возврате (метод POST) при сохранении понятно, что получаю новый объект из формы.

Сокращённое представление: dpaste
Полное представление в проектом: github
как я понял в форме опять нет скрытого инпута для ID, только в этот раз уже для SEO модели:
class SEOForm(forms.ModelForm):
   class Meta:
       model = models.SEO
       fields = ['title', 'keywords', 'description']

и когда ты в нее скармливаешь данные из POST'а:
main_page_seo_form = forms.SEOForm(
           request.POST,
           prefix='main_page_seo_form',
       )

она с удовольствием создает новые объекты,
так как для изменения нужен pk существующего объекта:
# Creating a form to change an existing article.
>>> article = Article.objects.get(pk=1)

инфа отсюда:
https://docs.djangoproject.com/en/3.1/topics/forms/modelforms/#modelform

(поправь, если я ошибаюсь)
источник

DO

D. Ouhh in Django [ru] #STAY HOME
Alexander
Сделай асинхронный процесс. Asyncio
у меня вью синхронные
источник

dd

dgj dfsh in Django [ru] #STAY HOME
X Man
Парни! Задача - сделать визуальную структуру базы данных, что бы её сразу можно было впихнуть в джангу. Что посоветуете?
источник

DO

D. Ouhh in Django [ru] #STAY HOME
class SomeView(View):
   def get(self, request):
       # do something...
       return HttpResponse("<h1>Success</h1>")

хочу после возвращения ответа ещё что-то сделать. подскажите, кто знает
источник

U

Unknown in Django [ru] #STAY HOME
D. Ouhh
class SomeView(View):
   def get(self, request):
       # do something...
       return HttpResponse("<h1>Success</h1>")

хочу после возвращения ответа ещё что-то сделать. подскажите, кто знает
конкретнее
источник

DO

D. Ouhh in Django [ru] #STAY HOME
Unknown
конкретнее
я перезаписал метод .close() в HttpResponse
источник

U

Unknown in Django [ru] #STAY HOME
D. Ouhh
привет. нужно после вьюхи сохранить некоторые данные в бд. так чтоб юзеру не нужно было ждать. как это лучше сделать? селери не хочу для такой простой задачи на одну вьюшку.
это изначальный вопрос?
источник

DO

D. Ouhh in Django [ru] #STAY HOME
Unknown
это изначальный вопрос?
да
источник

U

Unknown in Django [ru] #STAY HOME
почитай про celery.
выполняешь celery таску перед return как фоновый процесс и юзер не вынужден ждать.
источник

DO

D. Ouhh in Django [ru] #STAY HOME
Unknown
почитай про celery.
выполняешь celery таску перед return как фоновый процесс и юзер не вынужден ждать.
я ж написал в том сообщении, что не хочу целый селери брать для одной вью
источник

U

Unknown in Django [ru] #STAY HOME
D. Ouhh
я ж написал в том сообщении, что не хочу целый селери брать для одной вью
не вижу в этом проблемы. и тем не менее - это решение.
источник

SI

Serghei Iakovlev in Django [ru] #STAY HOME
Есть админка. Ничего особенного. В ней ModelAdmin, который рисует таблицу. В модели данных есть колонка number которая в базе хранится строкой. Админ хочет видеть сортировку по этой колонке в натуральном виде. Примеры значений в колонке: 1, 2, 12, 22a, 30, 99-b, 100

Кроме того, есть вторая колонка building_number, там тоже строка, сортировка должна происходить по этой колонке в первую очередь (см скриншот).

Вот таким не хитрым кверисетом оно сортируется как надо  (как на скрине) https://dpaste.org/izNS#L

Генерируемый SQL в данном случаем
ORDER BY "table"."building_number" ASC, "natsort_number" ASC, "table"."number" ASC

Однако стоит только кликнуть админу по первой колонке, сортировка становится не натуральной - 1, 10, 11, 2 и т.п, а сам генерируемый SQL

 ORDER BY "table"."number" ASC, "table"."building_number" ASC, "natsort_number" ASC

В какую сторону смотреть?
источник