'Issue with django request,get user from bd

SO,I want to get user details from database and show them in user.html,but I cant do it. They dont display in this file. I tried to do class UserView(ListView):, but it wasnt working. Maybe I didnt understand request.

view.py

def registerform(request): ##registerform 
    form = SightUp(request.POST or None)
    if form.is_valid():
        user_obj = form.save()#Сохранение значений в датабазе методом .save()
        username = form.cleaned_data.get('username')
        raw_password = form.cleaned_data.get('password1')
        email = form.cleaned_data.get('email')
        user = authenticate(username=username,password =raw_password,email=email)
        login(request,user)
        return redirect('/userprofile/')# ЗАМЕНИТЬ
    context =  {'form':form }

    return render(request,'user.html',context)


#def userprofiles(request):
#  userall = detailsuser.objects.all()
#  context = {
#      'objects':userall
#  }
# return render(request,'userprofile.html', context)
class UserView(ListView):
    model = User
    template_name = 'userprofile.html'
    context = 'detailsuser'
    def get_queryset(self):
        return detailsuser.objects.filter(user = self.request.user)

forms.py

class SightUp(UserCreationForm):
    first_name = forms.CharField( widget = forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'First Name'}), max_length=32, help_text='First name')
    last_name = forms.CharField( widget = forms.TextInput(attrs={'class':'form-control','placeholder':'Last name'}), max_length=32)
    email = forms.EmailField(widget =forms.TextInput(attrs={'class':'form-control', 'placeholder': 'Email'}), max_length =64,help_text='Enter valid Email')
    username = forms.CharField(widget =forms.TextInput(attrs={'class':'form-control','placeholder':'Username'}))
    password1 = forms.CharField(widget =forms.PasswordInput(attrs={'class':'form-control','placeholder':'Password1'}))
    password2 = forms.CharField(widget =forms.PasswordInput(attrs={'class':'form-control','placeholder':'Password2'}))
    class Meta(UserCreationForm.Meta):
        model = User
        fields = UserCreationForm.Meta.fields + ('first_name','last_name','email')

user.html

     {% for i in detailsuser %}
      <h1> yourname: i.email </h1>
      {% endfor %}
      <h1>Your last name:</h1>
      <h1>Your nickname:</h1>

models.py

class detailsuser(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)



Solution 1:[1]

Your challenge stems from the register view you need to make a conditional test for the POST method like so:

def registerform(request): ##registerform 
    if request.method == 'POST': #Here is where you make the condition for POST
       form = SightUp(request.POST or None)
       if form.is_valid():
           user_obj = form.save()#?????????? ???????? ? ???????? ??????? .save()
           username = form.cleaned_data.get('username')
           raw_password = form.cleaned_data.get('password1')
           email = form.cleaned_data.get('email')
           user = authenticate(username=username,password =raw_password,email=email)
           login(request,user)
           return redirect('/userprofile/')# ????????
    else:
         form = SightUp()

    context =  {'form':form }
    return render(request,'user.html',context)

Your user html had a problem, you didn't add the {% endfor %} tag that's why you are not seeing any information. Do something like so:

 {% for i in detailsuser %}
      <h1> yourname: i.email </h1>
      {% endfor %}
      <h1>Your last name:</h1>
      <h1>Your nickname:</h1>
{% endfor %}

Solution 2:[2]

I ansewer it. Problem was because of cycle in my template

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 MihailCapone