我是django的新手,我无法通过用户名显示当前登录用户的完整详细信息。当我尝试使用Exam.objects.get(username = username)时,我将得到不存在的错误查询,而我尝试使用Exam.objects.all()时,它将仅显示用户名。请告诉我如何显示当前登录用户个人资料详细信息
models.py
---------
from django.db import models
from django.template.defaultfilters import slugify
from django.contrib.auth.models import User
class Exam(models.Model):
user = models.OneToOneField(User)
username=models.CharField(max_length=25,default='')
phone = models.IntegerField(default=0)
location = models.CharField(max_length=40, blank=True)
email = models.EmailField(blank=True)
date_of_birth = models.DateField(null=True, blank=True)
gender = models.CharField(max_length=10, blank=True)
photo = models.ImageField(upload_to='media/photos/', null=True,
blank=True)
slug = models.SlugField(unique=True,default="")
def __str__(self):
return self.username
def save(self, *args, **kwargs):
self.slug = slugify(self.username)
super(Exam, self).save(*args, **kwargs)
forms.py
--------
from django import forms
from testapp.models import Exam
from django.contrib.auth.models import User
from django.core import validators
class ExamForm(forms.ModelForm):
password = forms.CharField(max_length=32, widget=forms.PasswordInput)
rpassword=forms.CharField(label='Re Enter
Password',widget=forms.PasswordInput)
first_name = forms.CharField(max_length=40, required=True)
last_name = forms.CharField(max_length=40, required=True)
phone = forms.IntegerField()
date_of_birth=forms.DateTimeField(help_text='DD/MM/YYYY
H:M',input_formats=['%d/%m/%Y %H:%M'])
gender = forms.CharField(max_length=10, required=True)
location = forms.CharField(max_length=40, required=True)
photo = forms.ImageField(help_text="Upload image: ", required=False)
class Meta:
model = Exam
fields = ('username','password','rpassword','first_name','last_name',
'email','date_of_birth','gender','photo','location','phone')
views.py
--------
def maas(request,maas_username_slug):
context_dict = {}
mass = request.user.Exam
# maas = Exam.objects.get(slug=maas_username_slug)
context_dict['maas_username'] = maas.username
context_dict['maas_username_slug'] = maas_username_slug
context_dict['maas_phone'] = maas.phone
context_dict['maas_firstname'] = maas.firstname
context_dict['maas_lastname'] = maas.lastname
context_dict['maas_location'] = maas.location
context_dict['date_of_birth'] = maas.date_of_birth
context_dict['maas_gender'] = maas.gender
context_dict['photo'] = maas.photo
context_dict['maas'] = maas
return render(request, 'testapp/profile.html', {'context_dict':
context_dict})
urls.py
-------
urlpatterns = [
url(r'(?P<maas_username_slug>\w+)/$', views.maas,
name='profile'),
]
profile.html
------------
{%extends 'testApp/base.html'%}
{%block body_block%}
<h1>Profile page:</h1>
<h1>{{maas_lastname}}</h1>
<h1>{{maas_username}}</h1>
{%endblock%}