I tried multiple links on stackov. but none worked, I can't get my *bio* form to save the data on the db for the user profile :/
I managed to save the first name and last name, but I can't make the bio save... This is my code: *profile.html* <form method="POST"> {% csrf_token %} {{ user_BioAndSocialForm.bio |as_crispy_field }} </p> <div class="form-group"> <button class="btn btn-outline-info" type="submit">Update</button> </div> </form> *views.py* from django.shortcuts import render, redirect from django.contrib import messages # to display alert messages when the form data is valid from .forms import UserSignUpForm, UserUpdateForm, ProfileUpdateForm, UserProfileForm, BioAndSocialForm from django.contrib.auth.decorators import login_required from django.contrib.auth import update_session_auth_hash from django.http import HttpResponseRedirect from django.shortcuts import HttpResponse from django.contrib.auth.forms import PasswordChangeForm @login_required def profile(request): if request.method == 'POST': user_ProfileForm = UserProfileForm(request.POST, instance=request.user) user_BioAndSocialForm = BioAndSocialForm(request.POST, instance= request.user) if user_ProfileForm.is_valid() and user_BioAndSocialForm.is_valid(): user_ProfileForm.save() user_BioAndSocialForm.save() messages.success(request, f'Profile updated!') return HttpResponseRedirect(request.path_info) else: messages.error(request, _('Please correct the error below.')) else: user_ProfileForm = UserProfileForm(instance=request.user) user_BioAndSocialForm = BioAndSocialForm(instance=request.user) context = { 'user_ProfileForm': user_ProfileForm, 'user_BioAndSocialForm': user_BioAndSocialForm } return render(request, 'users/profile.html', context) *forms.py* from django import forms from django.contrib.auth.models import User from django.contrib.auth.forms import UserCreationForm from .models import Profile from crispy_forms.helper import FormHelper class BioAndSocialForm(forms.ModelForm): class Meta: model = Profile fields = ['bio'] def __init__(self, *args, **kwargs): super(BioAndSocialForm, self).__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_show_labels = False *models.py* from django.db import models from django.contrib.auth.models import User from PIL import Image # Profle model with data regarding the user class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) bio = models.TextField(max_length=500, blank=True) birth_date = models.DateField(null=True, blank=True) #Image feature upload image = models.ImageField(default='default.jpg', upload_to='profile_pics') # If we don't have this, it's going to say profile object only def __str__(self): return f'{self.user.username} Profile' # it's going to print username Profile def save(self, *args, **kwargs): super().save(*args, **kwargs) img = Image.open(self.image.path) if img.height > 300 or img.width > 300: output_size = (300, 300) img.thumbnail(output_size) img.save(self.image.path) This is what the view looks like: When I hit update, and it refreshes, the bio info is not there. Could someone please help me? Thank you -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/85fec521-bc2d-444d-8b81-404389e81138%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.