@pydjango

Страница 1184 из 1273
Mr Earnest
17.04.2018
09:14:13
Не надо мне спасибо, я плохой. (Вообще мне просто не удобно будет с телефона искать в докуме этот момент)

Eugene
17.04.2018
09:14:18
просто хочет написать скрипт и запустить его вне джанги, но иметь доступ к базе ?:)

Teatimeswithyou
17.04.2018
09:14:37
и чтобы модели были моделями, видимо

Google
Dude
17.04.2018
09:14:53
да

именно

Teatimeswithyou
17.04.2018
09:15:04
1) manage.py shell - запустить скрипт 2) написать кастомную команду и запускать manage.py твоя команда

по другому никак

Dude
17.04.2018
09:15:39
спасибо всем

Artem
17.04.2018
09:15:54
мне кажется лучше даже так сразу 2

Artem
17.04.2018
09:16:22
написать скрипт и потом сделть что бы он чере manage.py команду запускался

Dan
17.04.2018
09:16:40
Написать просто скрипт в нём сделать django.setup() Импортировать модели и работать с ними как обычно

Запускать как исполняемый файл

Dmitriy
17.04.2018
09:17:28
Но это не очень хороший подход.

Artem
17.04.2018
09:17:38
if __name__ == '__main__': import django django.setup()

так чтоли?

Google
Massimo
17.04.2018
09:17:49
Dan
17.04.2018
09:18:02
Там только надо указать пути ещё

Artem
17.04.2018
09:18:19
Но это не очень хороший подход.
мне тоже кажется что не очень круто

Dan
17.04.2018
09:18:35
Добавить в sys.path

Dude
17.04.2018
09:19:36
В общем работать это будет, но не best practice

?

Dan
17.04.2018
09:19:59
Я так сто раз делал

Artem
17.04.2018
09:20:19
а что за скрипт?

Dude
17.04.2018
09:20:32
аргумент имеет вес)

можешь показать как ты это делал ?

Алексей
17.04.2018
09:20:55
Как в rest framework сделать update метод для вложеных сериалайзеров

def update(self, instance, validated_data): legal = validated_data.get('legal') instance.legal.legal_audit = user.get('legal_audit') instance.legal.taxation_ico = user.get('taxation_ico') instance.legal.security_regulation = user.get('security_regulation') instance.legal.company_setup = user.get('company_setup') instance.legal.save() print("hey") return instance

Dude
17.04.2018
09:22:53
Задача - запускать периодично функции из самописного класса, где аргументами будут поля из бд.

Eugene
17.04.2018
09:23:28
?типа парсера?

Dude
17.04.2018
09:23:29
может я не туда смотрю, но я думал вынести это в отдельным скрипт и подключить туда просто менеджеры моделей, чтобы можно было цеплять данные из бд

парсер в том числ

Eugene
17.04.2018
09:24:24
ну я кроном custom managment команду запускал. в данный момент в celery запускаю скрипт просто

Dude
17.04.2018
09:24:55
ну вот мы тут думаем как менее заебнее это будет сделать, пока все в пользу крона

потому что я в селери не умею особо

Google
Ruslan
17.04.2018
09:25:05
Как Django параллелит запросы? Сможет ли он принять и исполнить второй запрос, если все еще занимается первым (к примеру, дорогостоящая операция на сеть - аплоад видео)

Ruslan
17.04.2018
09:26:27
селери
Тоесть "из коробки" джанго не выполнит второй запрос, пока не завершит первый?

Eugene
17.04.2018
09:26:58
https://github.com/Tivix/django-cron

Ruslan
17.04.2018
09:27:07
да
Благодарю :)

Artem
17.04.2018
09:27:15
Благодарю :)
http://www.celeryproject.org/

Dude
17.04.2018
09:28:05
https://github.com/Tivix/django-cron
Опять же, если я вынесу это в отдельный скрипт и смогу забирать данные из бд, как словари, не понимаю причем тут django?

или это просто удобнее крона и селери и шедула ?

Artem
17.04.2018
09:32:24
не особо понятен вопрос

Dude
17.04.2018
09:33:17
Вопрос в том, что взять для периодичных тасков в простом скрипте питона, тогда уж так

Artem
17.04.2018
09:33:55
имхо проблема в том что это простой скрипт

и не особо понятно каким образом оно будет объявлено в системе

например придёт новый разработчик

а у тебя в апе лежит какой то файл который что-то делает

не особо понятно как он работает с django, и зачем он вообще нужен

а если ты через manage.py команду сделаешь то уже как-то типа прявяжешь

точка входа то у тебя manage.py

ну это чисто моё имхо

Google
Dude
17.04.2018
09:36:40
Я понял тебя, да. В таком случае это лучшее решение, чтобы не создавать неявную зависимость

Artem
17.04.2018
09:37:22
и внешне это будет выглядит лучше

если какойто сервис будет запускать команду не просто названия файла в какойто директории

python manage.py <название команды> с какимито аргументами

Dude
17.04.2018
09:40:15
я так понимаю осталось написать скрипт, цеплять из него данные в модели. Потом в "определенном" конфиге указать, чтобы он запускался manage.py?

Artem
17.04.2018
09:40:34
ну типа да

просто если ты через крон юзаешь

потом если уже тебе нужно будет селери то ты его уже сможешь на селери завязать

Dude
17.04.2018
09:42:18
Ну тогда вопрос отпадает, я думал что из него еще демона надо сделать, а здесь он автоматом с джангой вместе работать будет

Artem
17.04.2018
09:42:29
потому что у тебя логика скрипта в отдельной файли

Dude
17.04.2018
09:42:56
ну да

Artem
17.04.2018
09:43:27
https://docs.djangoproject.com/en/2.0/howto/custom-management-commands/

Set
17.04.2018
09:43:38
Прописал но в html ничего не выходи( почему ? <img src="{{ request.user.profile.avatar }}" alt=""> # User class Profile(models.Model): user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) phone = PhoneNumberField(verbose_name='Контактный тел', default=None, blank=True) @property def avatar(self): digest = md5(self.user.email.lower().encode('utf-8')).hexdigest() return 'https://www.gravatar.com/avatar/{}?d=identicon&s={}'.format(digest, 34)

Dude
17.04.2018
09:44:03
Artem
17.04.2018
09:44:44
class Command(BaseCommand): help = 'Closes the specified poll for voting' def handle(self, *args, **options): from apps.chtoto import LogikaScripta LogikaScripta.run()

что-то такое будет

где LogikaScripta где и есть логика скрипта который что-то делает

Dude
17.04.2018
09:46:25
Что за родительский класс BaseCommand?

Artem
17.04.2018
09:46:55
почитай в сылке что я скинул

Google
Set
17.04.2018
09:47:27


Artem
17.04.2018
09:47:55
это класс django который делает обвязку над python встроенной либой которая может принимать аргументы черз консоль

https://docs.djangoproject.com/en/2.0/_modules/django/core/management/base/#BaseCommand

Сергей
17.04.2018
09:48:18
request.user у тебя не анонимус?

Artem
17.04.2018
09:48:20
from argparse import ArgumentParser

Eugene
17.04.2018
09:49:36
правый клик - иследовать элемент - ищи тег img

Set
17.04.2018
09:49:40
с именем ладно



Сергей
17.04.2018
09:50:22
нет
попробуй к one-to-one добавить related_name явное.. и посмотри что выводит {{ request.user }}, {{ request.user.profile }}

у тебя даже <img src= не выводит?

Artem
17.04.2018
09:51:27
покажи шаблон

Set
17.04.2018
09:51:49


Сергей
17.04.2018
09:52:17
нет
обманщик

Set
17.04.2018
09:52:49
обманщик
смысле ?

в

Eugene
17.04.2018
09:53:55
url убери)

Set
17.04.2018
09:54:17
и так и так не работает (

Сергей
17.04.2018
09:54:38
url убери)
у него неавторизованный пользователь

Set
17.04.2018
09:54:45


Страница 1184 из 1273