Ich versuche, ein Formular zu erstellen, mit dem Benutzer ihre Profildaten bearbeiten können. Daher möchte ich, dass die neuesten Daten aus der Datenbank angezeigt werden, wenn der Benutzer das Formular bearbeitet. Heres, was ich bisher habe:Django erhalten Formular mit Daten aus der Datenbank
# models.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
location = models.CharField(max_length=30, blank=True)
birthdate = models.DateField(null=True, blank=True)
def __str__(self):
return self.user.username
# forms.py
class EditProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ['location', 'birthdate']
# views.py
class EditProfileFormView(View):
form_class = EditProfileForm
template_name = 'forums/edit-profile.html'
def get(self, request, username):
try:
user = User.objects.get(username=username)
except User.DoesNotExist:
raise Http404('The User "' + username + '" could not be found.')
if (not request.user.is_authenticated):
return HttpResponseForbidden()
elif (user.id is not request.user.id):
return HttpResponseForbidden()
form = self.form_class(None)
return render(request, self.template_name, {'form': form})
das Formular Einstellung form_class (None) ist das, was mir ein leeres Formular gibt, aber an der gleichen Stelle fällt user.profile ist mir einen Fehler ‚Profil‘ Objekt hat kein Attribut 'get'