Python Django中的用户显示信息
我在显示学生个人信息时遇到问题,例如:;名、姓、注册号、性别、国籍、电话号码等(均定义为charField)。当他们创建个人资料时。对于每个注册的学生,我希望在他们登录后在a/S主页上显示他们的信息 我一直在阅读文档,搜索那些接近我想要做的,但无法让它正常运行的实现 这是到目前为止我的代码 型号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
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:您为学生提供了特定的模型。然后在applicationmodels.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这是我的密码