Bitte ich brauche Hilfe. Ich habe ein Problem bei der Erweiterung userprofile.Am ersten scheint alles gut zu funktionieren bis jetzt. Bitte ich brauche Hilfe bei der Lösung dieser Balg ist mein Code. Model.pyErweitern Benutzerprofil
class UserProfile(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE,related_name="userprofile")
date =models.DateField(blank=False,null= True)
bio = models.TextField(max_length=500,blank=False)
picture = models.ImageField(upload_to="profile_image",null=True,blank=True)
company = models.CharField(max_length=500,null=True)
def __str__(self):
return self.user.username
@receiver(post_save,sender=User)
def create_profile(sender,instance,created,**kwargs):
if created:
UserProfile.objects.create(user=instance)
@receiver(post_save,sender=User)
def save_user_profile(sender,instance,**kwargs):
instance.UserProfile.save()
views.py
def update_profile(request):
if request.method == 'POST':
profile_form = ProfileForm(request.POST,request.FILES,instance=request.user.userprofile)
if profile_form.is_valid():
profile_form.save()
messages.success(request,'Your Profile has been Updated')
return redirect('success:profile_account')
else:
messages.error(request,'fill out the fields correctly')
else:
profile_form = ProfileForm(instance=request.user.userprofile)
return render(request,"success/user_account/edit_profile.html",{'profile_form':profile_form})
html.form
<form action='{{ action_url }}' method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ profile_form.bio}}{{profile_form.bio.error}}
{{ profile_form.picture}}{{profile_form.picture.error}}
<div class="pc"><label>Company Name:</label>{{ profile_form.company}}{{profile_form.company.error}}
{{ profile_form.date}}{{profile_form.date.error}}
<button type="submit">Save changes</button>
Fehler ich
Forbidden (403)
CSRF-Überprüfung fehlgeschlagen. Anfrage abgebrochen. Hilfe
Grund für das Scheitern gegeben:
CSRF token missing or incorrect.
Im Allgemeinen kann dies auftreten, wenn es eine echte Anfrage Cross Site ist Forgery, oder wenn Djangos CSRF Mechanismus nicht richtig eingesetzt. Für POST Formen, müssen Sie sicherstellen:
Your browser is accepting cookies. The view function passes a request to the template's render method. In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL. If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as
auch solche, die die POST-Daten übernehmen. Das Formular enthält ein gültiges CSRF-Token. Nachdem Sie sich in einem anderen Browser-Tab angemeldet oder nach einem Login die Zurück-Taste gedrückt haben, müssen Sie möglicherweise die Seite mit dem Formular neu laden, da das Token nach einer Anmeldung rotiert wird.
Sie sehen den Hilfebereich dieser Seite, weil Sie DEBUG = True in Ihrer Django-Einstellungsdatei haben. Ändern Sie das in False, und nur die anfängliche Fehlermeldung wird angezeigt.
Sie können diese Seite mit der Einstellung CSRF_FAILURE_VIEW anpassen.
ich, wenn diese Dinge nicht wissen, zu verlängern, aber hast du dein form-tag geschlossen? –