ru_python_beginners | Unsorted

Telegram-канал ru_python_beginners - Python beginners

14446

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Правила группы: https://t.me/ru_python_beginners/1649981

Subscribe to a channel

Python beginners

А, form_valid это если она валидна, а не вадидация

Читать полностью…

Python beginners

можно через формы делать
когда ты в forms.py
создаешь свой класс формы для заполнения
и там прописываешь метод для очистки поля

def clean_ИМЯПОЛЯ(self):


def clean_email(self):
email = self.cleaned_data['email']
if get_user_model().objects.filter(email=email).exists():
raise forms.ValidationError('Данный емейл уже зарегистрирован')
return email

Читать полностью…

Python beginners

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

Читать полностью…

Python beginners

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

Читать полностью…

Python beginners

не так страшна генерик вьюха как генерик круд

Читать полностью…

Python beginners

https://docs.djangoproject.com/en/5.1/topics/forms/#id4

Читать полностью…

Python beginners

В джанге нет какого-то метода вьюхи когда валидация уже прошла и надо теперь что-то сделать?

Читать полностью…

Python beginners

Почему вообще super() в конце?

Читать полностью…

Python beginners

class ProductCreateView(LoginRequiredMixin, CreateView):
model = Product
form_class = ProductForm
success_url = reverse_lazy("catalog:catalog_list")

def form_valid(self, form):
cleaned_data = form.cleaned_data['name'].lower()
forbidden_words = ['казино', 'криптовалюта', 'крипта', 'биржа', 'дешево', 'бесплатно', 'обман', 'полиция',
'радар']

for word in forbidden_words:
if word in cleaned_data:
form.add_error('name', 'Данное название не подходит.')
return self.form_invalid(form)

product = form.save()
user = self.request.user
product.owner = user
product.save()

return super().form_valid(form)

Читать полностью…

Python beginners

вот как это сделать правильно?

Читать полностью…

Python beginners

при таком коде, как сейчас написан у меня. Карточка на сайте создаваться не будет так как слово запрещено, но она появиться в базе данных

Читать полностью…

Python beginners

нужен совет, у меня есть контроллер. Для создания карточки продукта, в нем есть функция которая автоматически привязывает к созданному продукту авторизованного пользователя на сайте(то есть указывает его автором). Но так же есть мне нужно ограничение, по каким наименованиям продукт создавать нельзя

Читать полностью…

Python beginners

Вроде это
/channel/advice17/24

Читать полностью…

Python beginners

У Тишки была статья по структуре проекта. Так и называется вроде

Читать полностью…

Python beginners

Если хочется потыкать готовую модель - есть публичные сервисы, есть возможность у тебя что-то запустить, а можно что-то своё пытаться обучить. Первое будет круче сразу работать, но дороже. Последнее соответственно требует большего погружения именно в технологии работы

Читать полностью…

Python beginners

Чтоб в конце вызвался HTTPResponseRedirect (https://github.com/django/django/blob/main/django/views/generic/edit.py#L63) или как в доке "It should return an HTTPResponse"

* Смотрел исходный код джанги и сразу несколько ощущений было: ненавижу джангу, ненавижу MI

Читать полностью…

Python beginners

def register(request):
if request.method == 'POST':
form = RegisterUserForm(request.POST)
if form.is_valid():
user = form.save(commit=False)
user.set_password(form.cleaned_data['password'])
user.save()
return render(request, 'users/register_done.html')
else:
form = RegisterUserForm()
return render(request, 'users/register.html', {'form': form})

вот для джанги и пароля
получили форму, форма ок
шифруем пароль, закидываем.
это через вьюху

вот ты можешь точно так же получать имя, если нет банворда, то закидывать, иначе - отклонять и не закидывать в БД

Читать полностью…

Python beginners

if form.is_valid():
CLS = form.save(commit=False)
CLS.set_password(form.cleaned_data['password'])
CLS.save()

Читать полностью…

Python beginners

в джанге же ещё вроде миллион миксинов

Читать полностью…

Python beginners

вообще они предлагают во вьюхе сохранять

Читать полностью…

Python beginners

Вот откуда пидантик взял это, понятно

Читать полностью…

Python beginners

Почему вообще сохранение происходит в валидации формы?

Читать полностью…

Python beginners

Опять эти дженерик вьюхи

Читать полностью…

Python beginners

то есть блок кода с привязкой автора поставить после проверки слова?

Читать полностью…

Python beginners

потому что сохранение в бд происходит до проверки на валидность

Читать полностью…

Python beginners

class ProductCreateView(LoginRequiredMixin, CreateView):
model = Product
form_class = ProductForm
success_url = reverse_lazy("catalog:catalog_list")

def form_valid(self, form):
product = form.save()
user = self.request.user
product.owner = user
product.save()

cleaned_data = form.cleaned_data['name'].lower()
forbidden_words = ['казино', 'криптовалюта', 'крипта', 'биржа', 'дешево', 'бесплатно', 'обман', 'полиция',
'радар']

for word in forbidden_words:
if word in cleaned_data:
form.add_error('name', 'Данное название не подходит.')
return self.form_invalid(form)

return super().form_valid(form)

Читать полностью…

Python beginners

Начни отсюда

/channel/advice17/16

Читать полностью…

Python beginners

Там скорее навык в том, что ты:
1 понимаешь, что что-то идёт не так
2 можешь найти видос с пакистанцем, который уже это фиксил
3 можешь сделать так, как пакистанец

Читать полностью…

Python beginners

Пожалуйста, посоветуйте материал (книги, статьи, видео) который поможет сделать хорошую структуру проекта. Видел многие разделают код на некие "utils", "services" и прочее. Мне подобная практика не очень знакома. Каждый проект жалею о её структуре и хочу переписать все с нуля, понимая что из-за отсутствия системности наступлю на те же грабли.

Читать полностью…

Python beginners

и чтобы тебе этим заниматься, именно разрабатывать, тебе нужна математика как ни крути

Читать полностью…
Subscribe to a channel