Django中如何用用户名对应每个人的信息,看到自己的指标
时间: 2024-03-12 08:47:02 浏览: 65
在Django中,您可以使用模型(Model)来定义每个人的信息,并将其存储在数据库中。下面是一个示例代码:
```python
from django.db import models
from django.contrib.auth.models import User
class Person(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
age = models.IntegerField()
score = models.IntegerField()
def __str__(self):
return self.name
```
在上面的代码中,我们定义了一个名为`Person`的模型,它包含了每个人的姓名、年龄和得分。我们使用`OneToOneField`来将每个人与`User`模型关联起来,以便在需要的时候可以使用用户名来访问他们的信息。
接下来,您可以在视图函数(View)中使用`request.user`来获取当前用户的用户名,并使用它来访问他们的信息。下面是一个示例代码:
```python
from django.shortcuts import render
from .models import Person
def my_profile(request):
username = request.user.username
person = Person.objects.get(user__username=username)
return render(request, 'my_profile.html', {'person': person})
```
在上面的代码中,我们定义了一个名为`my_profile`的视图函数,它使用`request.user.username`来获取当前用户的用户名,并使用它来获取与该用户关联的`Person`对象。最后,我们将`Person`对象传递给`my_profile.html`模板,以便在模板中显示用户的信息。
在`my_profile.html`模板中,您可以使用`{{ person.name }}`、`{{ person.age }}`和`{{ person.score }}`等变量来显示用户的姓名、年龄和得分。
阅读全文