Wie man mehr als ein Django-Modell mit dem authentifizierten Benutzer einer Django-App verknüpft. Wie sieht meine view.py- und html-Vorlage aus, wenn ich Informationen von diesen Modellen anzeigen möchte welche sind Link zum Benutzer. Danke im Voraus .Mehrere Modelle erstellen, um Django-Benutzer zu erweitern
ist hier mein Code als
class UserProfile(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE,related_name="userprofile")
experience= model.TextField(max_Length=500,null=True,blank=False)
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)
post_save.connect(create_profile,sender=User)
folgt nun das zweite Modell, das, wo ich ein Problem
class UserProfileDp(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE,related_name="userprofiledp")
profile_dp = models.ImageField(upload_to="profile_image" ,null= True,blank=True)
def __str__(self):
return self.profile_dp
@receiver(post_save,sender=User)
def create_profile(sender,instance,created,**kwargs):
if created:
UserProfileDp.objects.create(user=instance)
post_save.connect(create_profile,sender=User)
Die Formularansicht des ersten Modells ohne Probleme funktioniert ziemlich gut haben, ist .aber i erhalten einen Fehler beim Erstellen der Formularansicht für das zweite Modell Hier ist mein View.py-Code für das zweite Modell
def user_profile_pic(request):
if request.method == 'POST':
profile_form = User_dp_form(request.POST,request.FILES,instance=request.user.userprofiledp)
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.userprofiledp)
return render(request,"success/user_account/edit_profile.html",{'profile_form':profile_form})
Fehler
RelatedObjectDoesNotExist bei/user_profile_pic/
Benutzer hat kein userprofiledp.