class Users(models.Model): user = models.CharField(max_length=11, primary_key=True) password = models.CharField(max_length=128) nick = models.CharField(max_length=16, blank=True) tel = models.CharField(max_length=11, blank=True) def save(self, force_insert=False, force_update=False, using=None, update_fields=None): self.password = make_password(self.password) super().save() def __str__(self): return self.user class Meta: db_table = 'users'这是我的用户信息模型,我应该如何编写视图函数和html来实现显示用户信息到页面中的功能?
时间: 2023-11-27 20:02:47 浏览: 70
你可以编写一个视图函数来获取用户信息并将其传递给一个模板,然后在模板中使用模板语言来显示用户信息。
例如,你可以编写以下视图函数:
```python
from django.shortcuts import render
from .models import Users
def user_info(request):
user = Users.objects.get(user=request.user.username)
context = {'user': user}
return render(request, 'user_info.html', context)
```
在这个视图函数中,我们首先从数据库中获取当前登录用户的信息,然后将其存储在名为 `user` 的变量中。
接下来,我们将 `user` 变量传递给模板,并命名为 `user`,以使其在模板中可用。
最后,我们使用 `render` 函数来呈现名为 `user_info.html` 的模板,并将 `context` 字典传递给模板。
现在,你可以在 `user_info.html` 模板中使用模板语言来显示用户信息。例如:
```html
<h1>User Information</h1>
<p>Username: {{ user.user }}</p>
<p>Nickname: {{ user.nick }}</p>
<p>Telephone: {{ user.tel }}</p>
```
在这个模板中,我们使用 `{{ user.user }}` 语法来显示用户名,`{{ user.nick }}` 来显示昵称,`{{ user.tel }}` 来显示电话号码。
当用户访问 `/user_info/` URL 时,该视图函数将被调用,并且用户信息将被显示在模板中。
阅读全文