Python Django中的用户显示信息

Python Django中的用户显示信息,python,django,Python,Django,我在显示学生个人信息时遇到问题,例如:;名、姓、注册号、性别、国籍、电话号码等(均定义为charField)。当他们创建个人资料时。对于每个注册的学生,我希望在他们登录后在a/S主页上显示他们的信息 我一直在阅读文档,搜索那些接近我想要做的,但无法让它正常运行的实现 这是到目前为止我的代码 型号 from django.db import models from django.conf import settings User=settings.AUTH_USER_MODEL # Create

我在显示学生个人信息时遇到问题,例如:;名、姓、注册号、性别、国籍、电话号码等(均定义为charField)。当他们创建个人资料时。对于每个注册的学生,我希望在他们登录后在a/S主页上显示他们的信息

我一直在阅读文档,搜索那些接近我想要做的,但无法让它正常运行的实现

这是到目前为止我的代码

型号

from django.db import models
from django.conf import settings

User=settings.AUTH_USER_MODEL
# Create your models here.
class Pinforamtion(models.Model):
    user=models.ForeignKey(User,null=True,default=1,on_delete=models.CASCADE)
    surname=models.CharField(max_length=120)
    firstname=models.CharField(max_length=120)
    other_names=models.CharField(max_length=120)
    nationality=models.CharField(max_length=120)
    date_of_birth=models.CharField(max_length=120)
    sex=models.CharField(max_length=120)
    phone_number=models.CharField(max_length=120)
    department=models.CharField(max_length=120)
    majors=models.CharField(max_length=120)
    reg_no=models.CharField(max_length=120)
    img=models.ImageField(upload_to='pics')
from django.shortcuts import render,redirect
from.models import Pinforamtion, User
from django.http import HttpResponse
from .forms import StudentForm
def index(request):
    obj=Pinforamtion.objects.all()
    my_context={
        'object':obj
    }
    return render(request,"student/index.html",my_context)

def student_create_view(request):
    form=StudentForm(request.POST or None,request.FILES or None)
    if form.is_valid():
        form.save()
        form=StudentForm()
    context={
        'form':form
    }
    return render(request,"student/student_create.html",context)
视图

from django.db import models
from django.conf import settings

User=settings.AUTH_USER_MODEL
# Create your models here.
class Pinforamtion(models.Model):
    user=models.ForeignKey(User,null=True,default=1,on_delete=models.CASCADE)
    surname=models.CharField(max_length=120)
    firstname=models.CharField(max_length=120)
    other_names=models.CharField(max_length=120)
    nationality=models.CharField(max_length=120)
    date_of_birth=models.CharField(max_length=120)
    sex=models.CharField(max_length=120)
    phone_number=models.CharField(max_length=120)
    department=models.CharField(max_length=120)
    majors=models.CharField(max_length=120)
    reg_no=models.CharField(max_length=120)
    img=models.ImageField(upload_to='pics')
from django.shortcuts import render,redirect
from.models import Pinforamtion, User
from django.http import HttpResponse
from .forms import StudentForm
def index(request):
    obj=Pinforamtion.objects.all()
    my_context={
        'object':obj
    }
    return render(request,"student/index.html",my_context)

def student_create_view(request):
    form=StudentForm(request.POST or None,request.FILES or None)
    if form.is_valid():
        form.save()
        form=StudentForm()
    context={
        'form':form
    }
    return render(request,"student/student_create.html",context)
URL


from django.urls import path

from . import views

urlpatterns=[
    path("index",views.index,name="index"),#calling of views into urls
    path("create",views.student_create_view,name="create")

]
索引模板

<div class="row">

              {% if user.is_authenticated %}
              {% for subjects in object  %}
            <!-- Area Chart -->
            <div class="col-xl-8 col-lg-7">
              <div class="card shadow mb-4">
                <!-- Card Header - Dropdown -->
                <div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
                  <h6 class="m-0 font-weight-bold text-primary">Personal Information</h6>
                  <div class="dropdown no-arrow">

                  </div>
                </div>
                <!-- Card Body -->
                <div class="card-body">
                  <div class="text-center-capitalize" "text-capitalize">
                   <div class=" text-primary-center">Surname: {{subjects.surname}}</div>
                   <div class=" text-primary-center">First name: {{subjects.firstname}}</div>
                   <div class=" text-primary-center">Other names: {{subjects.other_names}}</div>
                   <div class=" text-primary-center">Nationality: {{subjects.nationality}}</div>
                   <div class=" text-primary-center">Date of Birth: {{subjects.date_of_birth}}</div>
                   <div class=" text-primary-center">Sex: {{subjects.sex}}</div>
                   <div class=" text-primary-center">Phone Number: {{subjects.phone_number}}</div>
                   <div class=" text-primary-center">Department: {{subjects.department}}</div>
                   <div class=" text-primary-center">Majors: {{subjects.majors}}</div>
                   <div class=" text-primary-center">Registration no: {{subjects.reg_no}}</div>
                  </div>
                </div>
              </div>
            </div>

            <!-- Pie Chart -->
            <div class="col-xl-4 col-lg-5">
              <div class="card shadow mb-4">
                <!-- Card Header - Dropdown -->
                <div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
                  <h6 class="m-0 font-weight-bold text-primary">Image</h6>
                  <div class="dropdown no-arrow"></div>
                </div>
                <!-- Card Body -->
                <div class="card-body">
                   </div>
                  <img class="img-fluid" src="{{subjects.img.url}}" alt="">
                </div>
                </div>
              </div>
            </div>
            {% endfor %}
              {% endif %}
          </div>

          <!-- Content Row -->
        <!-- /.container-fluid -->
           </div>
       </div>
      <!-- End of Main Content -->

{%if user.u经过身份验证%}
{对象%中的主题的百分比}
个人信息
姓氏:{{臣民.姓氏}
名字:{{subjects.firstname}
其他名称:{{科目.其他名称}
国籍:{{主体.国籍}
出生日期:{{受试者。出生日期}
性别:{{受试者.性别}
电话号码:{{受试者。电话号码}
部门:{{科目.部门}
专业:{{科目.专业}
注册号:{{受试者注册号}
形象
{%endfor%}
{%endif%}

几乎没有可能的结果。首先,您需要从数据库中获取信息。然后您需要访问模型并调用特定的方法来获取信息

案例1:您使用的是内部Django用户模型。然后,这是应用程序文件夹中的
models.py
的内容:

从django.contrib.auth导入get\u user\u模型
User=get\u User\u model()
案例2:您为学生提供了特定的模型。然后在application
models.py中有类似的内容:

来自django.db导入模型的

班级学生(模型。模型):
username=models.CharField('username',max_length=150,unique=True,)
first_name=models.CharField('first name',max_length=30,blank=True)
last_name=models.CharField('last name',max_length=150,blank=True)
email=models.EmailField('email address',blank=True)
#其他领域
然后,您需要从视图函数访问数据库中的数据。下面是
视图.py的示例代码:

从django.shortcuts导入渲染、获取对象或404
从.models导入用户,学生#您的模型在此处导入
def配置文件(请求、用户名):
#如果使用用户模型,则获取学生档案
学生=获取对象或404(用户,用户名=用户名)
#现在您可以将学生对象传递给模板
返回呈现(请求,“index.html”,{“student”:student})
因此,在模板中,您可以使用Django Templates
{{student.last_name}}
访问student对象及其属性


理解和获得第一印象的最佳方式。

您只需使用request.user、PFB即可获取登录用户的数据

def retuserdetails(request):
    if request.user.is_authenticated:
       print(request.user.username,request.user.id)

request.user提供当前用户的详细信息,如果用户未登录,它将返回AnonymousUser

请分享您迄今为止所做的工作。请分享您的代码。@astikan下面是code@Mikhail卡什金这是我的code@gm_will这是我的密码