Фуфел разработчик, кодер, любитель абсурда) ПО совместительству веб девелопер
Контакты

Достижения

Все достижения (4)

Наибольший вклад в теги

Все теги (25)

Лучшие ответы пользователя

Все ответы (13)
  • Django ORM. Почему при создании миграций появляется ошибка OperationalError: no such table?

    timofeydeys
    @timofeydeys
    Свобода творцов
    Потому что при простом python manage.py makemigrations полностью поднимается окружение с сетингами. А т.к. forms.py где то импортиться, то джанга при старте его видит, а в БД таблику не видит. Потому и ошибка.
    Надо сначала писать модельки, потом миграции, потом все остальное. Либо Пока не сделаны миграции, не обращаться к БД. Ты своей AreasWork.objects.all() формируешь запрос к БД, вот и все.
    Ответ написан
    Комментировать
  • Как исключить повторяющиеся записи из QuerySet?

    timofeydeys
    @timofeydeys Автор вопроса
    Свобода творцов
    Вопрос снят. В итоге сделал так.
    Discussion.objects.all().annotate(
                    comment_old_date=Max(
                        Case(
                            When(
                                comments__date_create__isnull=True,
                                then=datetime.datetime.strptime('1950-01-01 00:00:00', '%Y-%m-%d %H:%M:%S')
                            ),
                            default='comments__date_create'
                        )
                    )
                ).order_by('-comment_old_date')
    Ответ написан
    Комментировать
  • Какой принцип отправки формы заказа на телефон в смс?

    timofeydeys
    @timofeydeys
    Свобода творцов
    Отправляется смс с сервера. Вам нужно либо поднимать собственный сервер, либо использовать готовые сервисы(они обычно платные). Т.е. передаете данные на сервер, как вы и делаете запросом. А сервер уже отправляет
    Ответ написан
    3 комментария
  • Django как создать юзера с расширенной моделью?

    timofeydeys
    @timofeydeys Автор вопроса
    Свобода творцов
    Вот мой код, если кому интересно
    forms.py
    class UserCreationForm(forms.ModelForm):
        password1 = forms.CharField(
            label='passwd',
            widget=forms.PasswordInput(attrs={
                'style':'margin:10px; padding:10px;height:40px',
                'class':'form-control col-sm-8',
                    'placeholder': 'Password please'
            })
        )
        password2 = forms.CharField(
            label='double passwd',
            widget=forms.PasswordInput(attrs={
                'style':'margin:10px; padding:10px;height:40px',
                'class':'form-control col-sm-8',
                    'placeholder': 'Double password please'
            })
        )
    
        def clean_password2(self):
            password1 = self.cleaned_data.get('password1')
            password2 = self.cleaned_data.get('password2')
            if password1 and password2 and password1 != password2:
                raise forms.ValidationError('Passwd and double passwd error')
            return password2
    
    
        def save(self, commit=True):
            user = super(UserCreationForm, self).save(commit=False)
            user.set_password(self.cleaned_data['password1']) # важно тут передавать password1 или 2. Но не password как в примере выше
            if commit:
                user.save()
            return user
        
    
        class Meta:
            model = get_user_model()
            fields = ('email', 'lastname', 'firstname')
            widgets = {
                'email': forms.TextInput(attrs={
                    'style':'margin:10px; padding:10px;height:40px',
                    'class':'form-control col-sm-8',
                    'placeholder': 'E-mail please'
                }),
                'lastname': forms.TextInput(attrs={
                    'style':'margin:10px; padding:10px;height:40px',
                    'class':'form-control col-sm-8',
                    'placeholder': 'Lastname please'
                }),
                'firstname': forms.TextInput(attrs={
                    'style':'margin:10px; padding:10px;height:40px',
                    'class':'form-control col-sm-8',
                    'placeholder': 'Firstname please'
                }),
            }


    Вот вьюха:
    def registerPost(request):
        if request.method == "POST":
            user_form = UserCreationForm(request.POST)
            
            if user_form.is_valid():
                new_user = user_form.save(commit=False)
                new_user.set_password(user_form.cleaned_data['password1'])
                new_user.avatar = "fotos/no_image_dummy.png"
                new_user.save()
                return HttpResponseRedirect("/login")
        else:
            user_form = UserCreationForm()
        return render(request, 'register.html', {'form':user_form})
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (31)