无法显示登录用户的完整详细信息?

时间:2019-08-29 07:05:53

标签: django

我是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%}

0 个答案:

没有答案