def profile(request): if request.method == 'POST': form = UserProfileForm(data=request.POST, files=request.FILES, instance=request.user) profile_form = ShopUserProfileEditForm( data=request.POST, instance=request.user.shopuserprofile) if form.is_valid() and profile_form.is_valid(): form.save() return HttpResponseRedirect(reverse('auth:profile')) else: messages.error(request, 'Введены данные не корректно') return render(request, 'authapp/login.html') else: form = UserProfileForm(instance=request.user) profile_form = ShopUserProfileEditForm( instance=request.user.shopuserprofile) # baskets = Basket.objects.filter(user=request.user) context = { 'form': form, 'profile_form': profile_form, # 'baskets': get_basket(request.user), } return render(request, 'authapp/profile.html', context)
def user_profile(request): if request.method == 'POST': user = ShopUserEditForm(request.POST, request.FILES, instance=request.user) profile_form = ShopUserProfileEditForm( request.POST, instance=request.user.shopuserprofile) if user.is_valid() and profile_form.is_valid(): # with transaction.atomic(): пример исп-я декоратора внутри ф-ции # smth_to.save() для примера исп-я декоратора внутри ф-ции # user.save() #etc user.save() return HttpResponseRedirect(reverse('main:index')) else: user = ShopUserEditForm( instance=request.user ) #если в Джанго не передавать instance, то он будет пытаться создавать новый объект profile_form = ShopUserProfileEditForm( instance=request.user.shopuserprofile) context = { 'page_title': 'профиль', 'form': user, 'profile_form': profile_form } return render(request, 'authapp/profile.html', context)
def profile(request): if request.method == 'POST': form = UserProfileForm(data=request.POST, files=request.FILES, instance=request.user) profile_form = ShopUserProfileEditForm( data=request.POST, instance=request.user.shopuserprofile) if form.is_valid() and profile_form.is_valid(): form.save() return HttpResponseRedirect(reverse('auth:profile')) else: form = UserProfileForm(instance=request.user) profile_form = ShopUserProfileEditForm( instance=request.user.shopuserprofile) # baskets = Basket.objects.filter(user=request.user) context = { 'form': form, 'profile_form': profile_form, 'baskets': Basket.objects.filter(user=request.user).select_related('product'), # 'total_quantity': sum(basket.quantity for basket in baskets), # 'total_sum': sum(basket.sum() for basket in baskets), } return render(request, 'authapp/profile.html', context)
def edit(request): title = 'редактирование' if request.method == 'POST': # Особенность конструктора формы редактирования в Django — необходимо передать сам объект в # именованном аргументе instance=request.user edit_form = ShopUserEditForm(request.POST, request.FILES, instance=request.user) # Особенность работы с формой ShopUserProfileEditForm в том, что она заполняется данными из # связанной модели ShopUserProfileEditForm(instance=request.user.shopuserprofile) profile_form = ShopUserProfileEditForm( request.POST, instance=request.user.shopuserprofile) if edit_form.is_valid() and profile_form.is_valid(): # Профиль (profile_form) сохранится автоматически благодаря использованию в модели # декоратора @receiver(post_save, sender=ShopUser) . edit_form.save() return HttpResponseRedirect(reverse('auth:edit')) else: edit_form = ShopUserEditForm(instance=request.user) profile_form = ShopUserProfileEditForm( instance=request.user.shopuserprofile) content = { 'title': title, 'edit_form': edit_form, 'profile_form': profile_form } return render(request, 'authapp/edit.html', content)
def edit(request): title = 'редактирование' if request.method == 'POST': edit_form = ShopUserEditForm(request.POST, request.FILES, instance=request.user) profile_form = ShopUserProfileEditForm( request.POST, instance=request.user.shopuserprofile) if edit_form.is_valid() and profile_form.is_valid(): edit_form.save() return HttpResponseRedirect(reverse('auth:edit')) else: edit_form = ShopUserEditForm(instance=request.user) profile_form = ShopUserProfileEditForm( instance=request.user.shopuserprofile) content = { 'title': title, 'edit_form': edit_form, 'profile_form': profile_form } return render(request, 'authapp/edit.html', content)
def post(self, request, **kwargs): edit_form = ShopUserEditForm(request.POST, request.FILES, instance=request.user) profile_form = ShopUserProfileEditForm( request.POST, instance=request.user.shopuserprofile) if edit_form.is_valid() and profile_form.is_valid(): edit_form.save() return HttpResponseRedirect(reverse('authapp:edit'))
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['title'] = 'Профиль ' + self.request.user.username if self.request.POST: context['profile_form'] = ShopUserProfileEditForm( self.request.POST, instance=self.request.user.shopuserprofile) else: context['profile_form'] = ShopUserProfileEditForm( instance=self.request.user.shopuserprofile) return context
def post(self, request, *args, **kwargs): edit_form = ShopUserEditForm(request.POST, request.FILES, instance=request.user) profile_form = ShopUserProfileEditForm( request.POST, instance=request.user.shopuserprofile) if edit_form.is_valid() and profile_form.is_valid(): edit_form.save() messages.success(request, 'User info was successfully updated!') return HttpResponseRedirect(reverse('auth:edit')) else: messages.error(request, 'User info was not updated.')
def edit(request): if request.method == "POST": edit_form = ShopUserEditForm(request.POST, request.FILES, instance=request.user) profile_edit_form = ShopUserProfileEditForm( request.POST, instance=request.user.shopuserprofile) if edit_form.is_valid() and profile_edit_form.is_valid(): edit_form.save() return HttpResponseRedirect(reverse("authapp:edit")) else: edit_form = ShopUserEditForm() profile_edit_form = ShopUserProfileEditForm( instance=request.user.shopuserprofile) content = {"edit_form": edit_form, "profile_form": profile_edit_form} return render(request, "authapp/edit.html", content)
def edit(request, pk): get_user = get_object_or_404(ShopUser, pk=pk) edit_form = ShopUserEditForm(instance=get_user) profile_form = ShopUserProfileEditForm(instance=get_user.shopuserprofile) if request.method == 'POST': edit_form = ShopUserEditForm(request.POST, request.FILES, instance=get_user) profile_form = ShopUserProfileEditForm(request.POST, instance=get_user.shopuserprofile) if edit_form.is_valid() and profile_form.is_valid(): edit_form.save() return HttpResponseRedirect(reverse('auth_urls:edit', kwargs={'pk': pk})) context = { 'edit_form': edit_form, 'profile_form': profile_form, 'submit_label': 'Применить', } page_name(context, 'Edit profile') return render(request, 'authapp/edit.html', context)
def update(request): if request.method == 'POST': form = ShopUserEditForm(request.POST, request.FILES, instance=request.user) profile_form = ShopUserProfileEditForm(request.POST, instance=request.user.shopuserprofile) if form.is_valid() and profile_form.is_valid(): form.save() return HttpResponseRedirect(reverse('auth:update')) else: form = ShopUserEditForm(instance=request.user) profile_form = ShopUserProfileEditForm(instance=request.user.shopuserprofile) content = { 'title': 'Редактирование', 'form': form, 'profile_form': profile_form } return render(request, 'authapp/update.html', content)
def post(self, request, *args, **kwargs): """ Handle POST requests: instantiate a form instance with the passed POST variables and then check if it's valid. """ form = ShopUserProfileForm(request.POST, request.FILES, instance=request.user) profile_form = ShopUserProfileEditForm( self.request.POST, instance=self.request.user.shopuserprofile) print(form) print(form.is_valid(), profile_form.is_valid()) form.is_valid() if form.is_valid() and profile_form.is_valid(): return self.form_valid(form, profile_form) else: return self.form_invalid(form, profile_form)
def get(self, request, **kwargs): title = 'редактирование' edit_form = ShopUserEditForm(instance=request.user) profile_form = ShopUserProfileEditForm( instance=request.user.shopuserprofile) content = { 'title': title, 'edit_form': edit_form, 'profile_form': profile_form } return render(request, 'authapp/edit.html', content)
def profile(request): if request.method == 'POST': form = UserProfileForm(data=request.POST, files=request.FILES, instance=request.user) profile_form = ShopUserProfileEditForm( request.POST, instance=request.user.userprofile) if form.is_valid() and profile_form.is_valid(): form.save() return HttpResponseRedirect(reverse('auth:profile')) else: form = UserProfileForm(instance=request.user) profile_form = ShopUserProfileEditForm( instance=request.user.userprofile) context = { 'form': form, 'profile_form': profile_form, 'baskets': Basket.objects.filter(user=request.user), } return render(request, 'authapp/profile.html', context)
def edit(request): title = "редактирование" if request.method == "POST": edit_form = ShopUserEditForm(request.POST, request.FILES, instance=request.user) profile_edit_form = ShopUserProfileEditForm(request.POST, request.FILES, instance=request.user.shopuserprofile) if edit_form.is_valid() and profile_edit_form.is_valid(): edit_form.save() # profile_edit_form.save() return HttpResponseRedirect(reverse("auth:edit")) else: edit_form = ShopUserEditForm(instance=request.user) profile_edit_form = ShopUserProfileEditForm(instance=request.user.shopuserprofile) content = {"title": title, "edit_form": edit_form, "profile_edit_form": profile_edit_form, "media_url": settings.MEDIA_URL} return render(request, "authapp/edit.html", content)
def get(self, request, *args, **kwargs): edit_form = ShopUserEditForm(instance=request.user) profile_form = ShopUserProfileEditForm( instance=request.user.shopuserprofile) context = { 'title': 'edit user', 'edit_form': edit_form, 'profile_form': profile_form, } return render(request, 'authapp/edit.html', context)
def profile(request): if request.method == 'POST': form = ShopUserProfileForm(request.POST, request.FILES, instance=request.user) profile_form = ShopUserProfileEditForm( request.POST, instance=request.user.shopuserprofile) if form.is_valid() and profile_form.is_valid(): form.save() return HttpResponseRedirect(reverse('auth:profile')) else: form = ShopUserProfileForm(instance=request.user) profile_form = ShopUserProfileEditForm( instance=request.user.shopuserprofile) # baskets = Basket.objects.filter(user=request.user) title = 'Профиль ' + request.user.username content = {'title': title, 'form': form, 'profile_form': profile_form} return render(request, 'authapp/profile.html', content)
def edit(request): if request.method == 'POST': edit_form = ShopUserEditForm(request.POST, request.FILES, instance=request.user) profile_edit_form = ShopUserProfileEditForm( request.POST, instance=request.user.shopuserprofile) if edit_form.is_valid() and profile_edit_form.is_valid(): edit_form.save() return render(request, 'authapp/edit.html', { 'edit_form': edit_form, 'profile_edit_form': profile_edit_form, }) edit_form = ShopUserEditForm(instance=request.user) profile_edit_form = ShopUserProfileEditForm( instance=request.user.shopuserprofile) return render(request, 'authapp/edit.html', { 'edit_form': edit_form, 'profile_edit_form': profile_edit_form, })
def edit(request): title = 'редактирование' if request.method == 'POST': # instance=request.user - указывает на тот объект который мы редактируем edit_form = ShopUserEditForm(request.POST, request.FILES, instance=request.user) # Добавим ещё одну форму profile_form = ShopUserProfileEditForm(request.POST, instance=request.user.shopuserprofile) if edit_form.is_valid() and profile_form.is_valid(): edit_form.save() # profile_form - сохраняется через сигналы, поэтому сохранение тут отсутствует return HttpResponseRedirect(reverse('auth:edit')) else: # если GET запрос edit_form = ShopUserEditForm(instance=request.user) profile_form = ShopUserProfileEditForm(instance=request.user.shopuserprofile) content = { 'title': title, 'edit_form': edit_form, 'profile_form': profile_form } return render(request, 'authapp/edit.html', content)
def update(request): if request.method == 'POST': form = ShopUserUpdateForm(request.POST, request.FILES, instance=request.user) # она заполняется данными из связанной модели profile_form = ShopUserProfileEditForm( request.POST, instance=request.user.shopuserprofile) if form.is_valid() and profile_form.is_valid(): form.save() return HttpResponseRedirect(reverse('auth:update')) else: form = ShopUserUpdateForm(instance=request.user) profile_form = ShopUserProfileEditForm( instance=request.user.shopuserprofile) content = { 'title': 'Редактирование данных', 'form': form, 'profile_form': profile_form, 'main_menu': main_menu(), 'info_pages': footer_menu(), 'basket': get_basket(request), } return render(request, 'authapp/update.html', content)