Size: a a a

Django [ru] #STAY HOME

2019 September 06

AV

Arseniy Volobuev in Django [ru] #STAY HOME
So Byte
prefetch_related
спасибо :)
источник

P

Pooh in Django [ru] #STAY HOME
Поставили ограничение на сообщения?
источник

T

Tim in Django [ru] #STAY HOME
Dan Tyan
там единственное надо определится где вызывать таск
я бы таки остановился на таске
https://gist.github.com/Safintim/bbee324a6b8ca2405e15866497c4eec7

попробовал transaction. Вроде, работает как надо
источник

DT

Dan Tyan in Django [ru] #STAY HOME
боюсь прослыть писимистом
источник

DT

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

T

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

DT

Dan Tyan in Django [ru] #STAY HOME
мне просто кажется этот декоратор не будет отрабатывать коректно
и сейчас работает потому что на локальном компе
источник

DT

Dan Tyan in Django [ru] #STAY HOME
утверждать не буду
источник

DT

Dan Tyan in Django [ru] #STAY HOME
попробуй
источник

AK

Alex K. in Django [ru] #STAY HOME
Приветствую. Пытался гуглить, ничего толкового на эту тему не нашел. Есть форма, собранная руками
<form action="" method="post">
           {% csrf_token %}
           <input type="hidden" value="login" name="action">
           <div class="form-group">
               <label for="login_username">Username</label>
               <input type="text"
                   id="login_username"
                   name="username"
                   placeholder="Enter username"
                   class="form-control">
           </div>
           <div class="form-group">
               <label for="login_pwd">Password</label>
               <input type="password"
                   id="login_pwd"
                   name="password"
                   placeholder="Enter password"
                   class="form-control">
           </div>
           <button class="btn btn-primary" type="submit">Submit</button>
       </form>


Во вьюхе, куда улетает эта форма, принтом вывожу request.POST:
def auth_view(request: HttpRequest) -> HttpResponse:
   if request.method == "POST":
       print(request.POST)


Вижу странное:

<QueryDict: {'csrfmiddlewaretoken': ['Zb8RoeddVt9Bv5D27k2KPoeyfyIEa5nOyKcyWtFB2yO57zPY5QUWbyhHn3Dk5KZ0'], 'action': ['login'], 'username': ['user'], 'password': ['123']}>

Т.е. значения полей почему-то прилетают списками. Это нормальное поведение джанги, или у меня что-то где-то неправильно?
источник

T

Tim in Django [ru] #STAY HOME
Dan Tyan
мне просто кажется этот декоратор не будет отрабатывать коректно
и сейчас работает потому что на локальном компе
понял, буду пробовать
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Alex K.
Приветствую. Пытался гуглить, ничего толкового на эту тему не нашел. Есть форма, собранная руками
<form action="" method="post">
           {% csrf_token %}
           <input type="hidden" value="login" name="action">
           <div class="form-group">
               <label for="login_username">Username</label>
               <input type="text"
                   id="login_username"
                   name="username"
                   placeholder="Enter username"
                   class="form-control">
           </div>
           <div class="form-group">
               <label for="login_pwd">Password</label>
               <input type="password"
                   id="login_pwd"
                   name="password"
                   placeholder="Enter password"
                   class="form-control">
           </div>
           <button class="btn btn-primary" type="submit">Submit</button>
       </form>


Во вьюхе, куда улетает эта форма, принтом вывожу request.POST:
def auth_view(request: HttpRequest) -> HttpResponse:
   if request.method == "POST":
       print(request.POST)


Вижу странное:

<QueryDict: {'csrfmiddlewaretoken': ['Zb8RoeddVt9Bv5D27k2KPoeyfyIEa5nOyKcyWtFB2yO57zPY5QUWbyhHn3Dk5KZ0'], 'action': ['login'], 'username': ['user'], 'password': ['123']}>

Т.е. значения полей почему-то прилетают списками. Это нормальное поведение джанги, или у меня что-то где-то неправильно?
это нормальное поведение
источник

DT

Dan Tyan in Django [ru] #STAY HOME
обращаешся как к обычному дикту

request.POST['uername']
или
request.POST.get('username')
источник

SB

So Byte in Django [ru] #STAY HOME
Уже к готовой бд добавил поле ImageField. Проставил blank, null и default=None. При миграции пишет ошибка столбец содержит значение NULL. Есть объяснение такому поведению?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
есть еще
request.POST.getlist('some') - для получения списка
источник

DT

Dan Tyan in Django [ru] #STAY HOME
So Byte
Уже к готовой бд добавил поле ImageField. Проставил blank, null и default=None. При миграции пишет ошибка столбец содержит значение NULL. Есть объяснение такому поведению?
точно покажи что ты вставил в аргументы
источник

А

Алексей in Django [ru] #STAY HOME
Есть сущности в базе и связанные с ней другие сущности, как в Celery для каждой основной сущности делать очередь? Мы не знаем, сколько у нас изначально основных сущностей, но обработка данных в тасках, касающихся их, не может быть одновременно несколько тасков на одну сущность. Куда копать?
Ну, для примера. У нас есть город, у него есть транспорт, жители, что угодно. И таких городов несколько, неизвесно заранее сколько. Каким механизмом выстраивать очереди тасков для этих городов? Одновременно могут выполняться таски разных годов, но не могут одновременно таски одного города.
источник

AK

Alex K. in Django [ru] #STAY HOME
Dan Tyan
обращаешся как к обычному дикту

request.POST['uername']
или
request.POST.get('username')
Вот как. Я просто хотел данные из формы скармливать распаковкой в AuthModel, примерно так:
auth_model = AuthModel(**request.POST)


class AuthModel:
   def __init__(self, *, username, password, confirm_password, **kwargs):


Т.е. с джангой так не выйдет? Или есть какой-то обходной путь?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Alex K.
Вот как. Я просто хотел данные из формы скармливать распаковкой в AuthModel, примерно так:
auth_model = AuthModel(**request.POST)


class AuthModel:
   def __init__(self, *, username, password, confirm_password, **kwargs):


Т.е. с джангой так не выйдет? Или есть какой-то обходной путь?
нет так не получится
источник

DT

Dan Tyan in Django [ru] #STAY HOME
мало того так делать не стоит
источник