Size: a a a

Django [ru] #STAY HOME

2020 August 13

A

Andrey in Django [ru] #STAY HOME
Anton Fircak
Ребят, работаю в дрф, есть модель у которой есть поле связанное  FK(User), при методе create надо создавать мне сущность User и передавать ее вместого того обьекта, подскажите плз где мне это делать, в сериализаторе или во вью? Знаю что можно и там и там, но мб есть некие преимущества где лучше
Вью
источник

A

Andrey in Django [ru] #STAY HOME
Сериализатор не должен отвечать за это. Это не его зона ответственности.
источник

AF

Anton Fircak in Django [ru] #STAY HOME
Andrey
Сериализатор не должен отвечать за это. Это не его зона ответственности.
понял, спасибо
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Sergey N.
Теперь бы с ошибками разобраться
странно должно работать
источник

M

Malik in Django [ru] #STAY HOME
Здравствуйте! помогите решить  пожалуйста ошибку
источник

M

Malik in Django [ru] #STAY HOME
def register_view(request):
   if request.method == 'GET':
       form = UserCreationForm()
       return render(request, 'register.html', {'form': form})
   elif request.method == 'POST':
       form = UserCreationForm(data=request.POST)
       if form.is_valid():
           user = User(username=form.cleaned_data['username'])
           user.set_password(form.cleaned_data['password'])
           user.save()
           login(request, user)
           return redirect('webapp:index')
       else:
           return render(request, 'register.html', {'form': form})


class UserCreationForm(forms.ModelForm):
   username = forms.CharField(max_length=100, label='Username', required=True)
   password = forms.CharField(max_length=100, label='Password', required=True, widget=forms.PasswordInput)
   password_confirm = forms.CharField(max_length=100, label='Password Confirm', required=True,
                                      widget=forms.PasswordInput)


Ошибка: ValueError: ModelForm has no model class specified.
источник

К-

Кутман - in Django [ru] #STAY HOME
по pyfcm есть примеры или ссылки хорошие?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Malik
def register_view(request):
   if request.method == 'GET':
       form = UserCreationForm()
       return render(request, 'register.html', {'form': form})
   elif request.method == 'POST':
       form = UserCreationForm(data=request.POST)
       if form.is_valid():
           user = User(username=form.cleaned_data['username'])
           user.set_password(form.cleaned_data['password'])
           user.save()
           login(request, user)
           return redirect('webapp:index')
       else:
           return render(request, 'register.html', {'form': form})


class UserCreationForm(forms.ModelForm):
   username = forms.CharField(max_length=100, label='Username', required=True)
   password = forms.CharField(max_length=100, label='Password', required=True, widget=forms.PasswordInput)
   password_confirm = forms.CharField(max_length=100, label='Password Confirm', required=True,
                                      widget=forms.PasswordInput)


Ошибка: ValueError: ModelForm has no model class specified.
ну русским же по белому написали, моделформ должна ссылаться на модель, а у тебя не ссылается
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Malik
def register_view(request):
   if request.method == 'GET':
       form = UserCreationForm()
       return render(request, 'register.html', {'form': form})
   elif request.method == 'POST':
       form = UserCreationForm(data=request.POST)
       if form.is_valid():
           user = User(username=form.cleaned_data['username'])
           user.set_password(form.cleaned_data['password'])
           user.save()
           login(request, user)
           return redirect('webapp:index')
       else:
           return render(request, 'register.html', {'form': form})


class UserCreationForm(forms.ModelForm):
   username = forms.CharField(max_length=100, label='Username', required=True)
   password = forms.CharField(max_length=100, label='Password', required=True, widget=forms.PasswordInput)
   password_confirm = forms.CharField(max_length=100, label='Password Confirm', required=True,
                                      widget=forms.PasswordInput)


Ошибка: ValueError: ModelForm has no model class specified.
ну и в целом не эргономично вьюха устроена, можно сначала проверять на пост, а то что идет после гет внизу - тогда оно отработает и если гет запрос и если форма не прошла валидацию
источник

M

Malik in Django [ru] #STAY HOME
Nikolay Cherniy
ну русским же по белому написали, моделформ должна ссылаться на модель, а у тебя не ссылается
модели нет , без него должно работать , пишу по аналогий одних курсов, там только forms view templates
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Malik
модели нет , без него должно работать , пишу по аналогий одних курсов, там только forms view templates
не должно, если без модели то forms.Form, а forms.ModelForm не спроста так называется
источник

VS

Vitaly Sharøv in Django [ru] #STAY HOME
есть модель 2 поля, 1 поле фк к одной модели, 2 поле мтм к другой. из этой модели форма, данные из которой не сейвятся в бд, просто отдает 200. сейвлю по доке:

instance = form.save(commit=False)
instance.user = self.request.user
instance.listing = self.object
instance.save()
form.save_m2m()
messages.success(self.request, 'Added to watchlist')
return redirect(self.get_success_url())
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vitaly Sharøv
есть модель 2 поля, 1 поле фк к одной модели, 2 поле мтм к другой. из этой модели форма, данные из которой не сейвятся в бд, просто отдает 200. сейвлю по доке:

instance = form.save(commit=False)
instance.user = self.request.user
instance.listing = self.object
instance.save()
form.save_m2m()
messages.success(self.request, 'Added to watchlist')
return redirect(self.get_success_url())
я сомневаюсь, что кто-то тебе сможешь помочь основываясь только на этих описаниях
источник

VS

Vitaly Sharøv in Django [ru] #STAY HOME
Alex Dem
я сомневаюсь, что кто-то тебе сможешь помочь основываясь только на этих описаниях
а что еще я мог бы дать? нет проблем
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vitaly Sharøv
а что еще я мог бы дать? нет проблем
ну а если чуть-чуть подумать? :)
источник

EM

Eugene Maltsev in Django [ru] #STAY HOME
Vitaly Sharøv
есть модель 2 поля, 1 поле фк к одной модели, 2 поле мтм к другой. из этой модели форма, данные из которой не сейвятся в бд, просто отдает 200. сейвлю по доке:

instance = form.save(commit=False)
instance.user = self.request.user
instance.listing = self.object
instance.save()
form.save_m2m()
messages.success(self.request, 'Added to watchlist')
return redirect(self.get_success_url())
А редирект происходит?)
источник

VS

Vitaly Sharøv in Django [ru] #STAY HOME
Eugene Maltsev
А редирект происходит?)
тоже нет
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vitaly Sharøv
а что еще я мог бы дать? нет проблем
как минимум - форму
источник

AD

Alex Dem in Django [ru] #STAY HOME
и полный view
источник

AD

Alex Dem in Django [ru] #STAY HOME
и все это в пасту
источник