Size: a a a

Django [ru] #STAY HOME

2019 April 23

DT

Dan Tyan in Django [ru] #STAY HOME
Yevhenii Prontsevych
Переслано от Yevhenii Prontsevych
Здравствуйте, друзья. Подскажите, пожалуйста, вот какой момент. Пытаюсь освоить агрегации данных в django, но вот не могу найти обьяснения одной ошибке. У меня есть некий список дат, который относится к некоторым обьектам (по несколько дат на обьект), из которых мне нужен месяц крайней даты. Вытягиваю через .annotate(ExtractMonth(Max('date'))). Потом, необходимо их сгруппировать и в последствии получить количество этих месяцев, пытаюсь через .values('month').annotate(count=Count('month') к предыдущему QuerySet`у. Результирующая таблица - это номер месяца и кол-во этого месяца в датах. В SQL это всё сделать получилось, а вот через ORM выбивает Cannot compute Count('month'): 'month' is an aggregate. Это как то лечится? Или ткните куда почитать
честно говоря не знаю
но может
.annotate(month=ExtractMonth(Max('date')))
источник

A

Anton in Django [ru] #STAY HOME
Yevhenii Prontsevych
Переслано от Yevhenii Prontsevych
Здравствуйте, друзья. Подскажите, пожалуйста, вот какой момент. Пытаюсь освоить агрегации данных в django, но вот не могу найти обьяснения одной ошибке. У меня есть некий список дат, который относится к некоторым обьектам (по несколько дат на обьект), из которых мне нужен месяц крайней даты. Вытягиваю через .annotate(ExtractMonth(Max('date'))). Потом, необходимо их сгруппировать и в последствии получить количество этих месяцев, пытаюсь через .values('month').annotate(count=Count('month') к предыдущему QuerySet`у. Результирующая таблица - это номер месяца и кол-во этого месяца в датах. В SQL это всё сделать получилось, а вот через ORM выбивает Cannot compute Count('month'): 'month' is an aggregate. Это как то лечится? Или ткните куда почитать
если ты знаешь, как это сделать в sql, можно посмотреть сырой sql код этой queryset. Может поможет разобраться в чем ошибка.
источник

PS

Philipp Shayzhanov in Django [ru] #STAY HOME
Alex
откуда пытаешься коннектится? хост какой
Пытаюсь коннектиться со своего компа, хост мой внешний ip.
источник

M

Marat in Django [ru] #STAY HOME
Добрый вечер! Помогите пожалуйста разобраться, совсем запутался, есть такая форма: class UserRegistrationForm(forms.ModelForm):
   password1 = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Password'}),required=True)
   password2 = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Confirm Password'}),required=True)

   class Meta:
       model = CustomUser
       fields = ('username', 'last_name', 'email', 'password1','password2')
       widgets = {
           'username': forms.TextInput(attrs={'placeholder': 'First Name'}),
           'last_name': forms.TextInput(attrs={'placeholder': 'Last Name'}),
           'email': forms.TextInput(attrs={'type' : 'email', 'placeholder': 'Email'}),
       }

   def clean_password(self):
       password1 = self.cleaned_data.get('password1')
       password2 = self.cleaned_data.get('password2')
       if password1 and password2 and password1 != password2:
           raise forms.ValidationError("Password don't match")
       return password2    и есть такая вьюха                                                                                      def register_view(request):
   form = UserRegistrationForm()
   if request.method == "POST":
       form = UserRegistrationForm(request.POST)
       if form.is_valid():
           print(form)

       return redirect('users:register')

   context = {
       'form': form,
   }
   return render(request, 'base.html', context)      Почему то не срабатывает валидация пароля, туда данные вообще не попадают, и во вьюхе форма тоже не заполняется. Где то я блуждаю не могу понять где. Помогите пожалуйста
источник

VB

Vladyslav Babych in Django [ru] #STAY HOME
Хочу сделать для опыта фильтр товаров, к примеру пользователь отмечает чекбоксами или циферками что он хочет видеть в выдаче жмакает кнопку получает отфильтрованный результат, можете подсказать куда копать как делать, может статьи какие видосы, хотя бы примеры кода
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
Vladyslav Babych
Хочу сделать для опыта фильтр товаров, к примеру пользователь отмечает чекбоксами или циферками что он хочет видеть в выдаче жмакает кнопку получает отфильтрованный результат, можете подсказать куда копать как делать, может статьи какие видосы, хотя бы примеры кода
django-filter?
источник

АВ

Александр Виноградов in Django [ru] #STAY HOME
Развернул сайт. Начал наполнять. Пока не все страницы созданы. Проверил sitemap.xml, ввёл соответствующий адрес. Выдаёт ошибку
Partitions matching query does not exist.
Но на локальной версии работает.
В чём недочёт?
источник

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
Marat
Добрый вечер! Помогите пожалуйста разобраться, совсем запутался, есть такая форма: class UserRegistrationForm(forms.ModelForm):
   password1 = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Password'}),required=True)
   password2 = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Confirm Password'}),required=True)

   class Meta:
       model = CustomUser
       fields = ('username', 'last_name', 'email', 'password1','password2')
       widgets = {
           'username': forms.TextInput(attrs={'placeholder': 'First Name'}),
           'last_name': forms.TextInput(attrs={'placeholder': 'Last Name'}),
           'email': forms.TextInput(attrs={'type' : 'email', 'placeholder': 'Email'}),
       }

   def clean_password(self):
       password1 = self.cleaned_data.get('password1')
       password2 = self.cleaned_data.get('password2')
       if password1 and password2 and password1 != password2:
           raise forms.ValidationError("Password don't match")
       return password2    и есть такая вьюха                                                                                      def register_view(request):
   form = UserRegistrationForm()
   if request.method == "POST":
       form = UserRegistrationForm(request.POST)
       if form.is_valid():
           print(form)

       return redirect('users:register')

   context = {
       'form': form,
   }
   return render(request, 'base.html', context)      Почему то не срабатывает валидация пароля, туда данные вообще не попадают, и во вьюхе форма тоже не заполняется. Где то я блуждаю не могу понять где. Помогите пожалуйста
Нужно в методе def clean() валидировать
источник

M

Marat in Django [ru] #STAY HOME
Адилет Асанкожоев
Нужно в методе def clean() валидировать
Оно там и валидируется
источник

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
Marat
Оно там и валидируется
У вас валидация в неком clean_password проходит
источник

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
Которого не должно быть
источник

M

Marat in Django [ru] #STAY HOME
Адилет Асанкожоев
У вас валидация в неком clean_password проходит
def clean_password2 вот так  она называется  в официальной документации,так что думаю дело не в этом
источник

M

Marat in Django [ru] #STAY HOME
Адилет Асанкожоев
У вас валидация в неком clean_password проходит
при попытке распечатать self,  ничего не происходит,данные туда не попадают
источник

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
Marat
def clean_password2 вот так  она называется  в официальной документации,так что думаю дело не в этом
Если сравниваешь 2 разных поля, то нужно это делать внутри def clean(self)
источник

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
def clean_password вы не можете юзать потому, что у Вас нет поля password
источник

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
А в def clean_password1 или def clean_password2 надо валидировать соответствующие поля
источник

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
источник

M

Marat in Django [ru] #STAY HOME
Адилет Асанкожоев
Если сравниваешь 2 разных поля, то нужно это делать внутри def clean(self)
так все и есть  у  меня
источник

M

Marat in Django [ru] #STAY HOME
def clean_password(self):
       password1 = self.cleaned_data.get('password1')
       password2 = self.cleaned_data.get('password2')
       if password1 and password2 and password1 != password2:
           raise forms.ValidationError("Password don't match")
       return password2
источник

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
Marat
так все и есть  у  меня
У вас clean_password,
источник