django - 模型属性显示字段的默认值而不是实际值
问题描述
我是 Django 初学者,我开始着手我的第一个项目。我实现了一个带有 medic_code 字段的模型“extendedUser”,扩展了用户。在模板中显示 medic_code 似乎是一个问题。它不显示用户的实际属性,而是默认值:“”。
模板
{% extends "blog/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="content-section">
<div class="media">
<img class="rounded-circle account-img" src="{{ user.profile.image.url }}">
<div class="media-body">
<h2 class="account-heading">{{ user.username }}</h2>
<p class="text-secondary">{{ user.email }} </p>
<p class="text-secondary">{{ user.medic_code }}</p> (empty string here)
</div>
</div>
<!-- FORM HERE -->
</div>
{% endblock content %}
模型.py:
from django.db import models
from django.contrib.auth.models import User
class extendedUser(User):
medic_code = models.CharField(max_length=20, default='')
用户/forms.py:
from django import forms
from django.contrib.auth.forms import UserCreationForm
from users.models import extendedUser
class UserRegisterForm(UserCreationForm):
email = forms.EmailField()
medic_code = forms.CharField(max_length=20)
class Meta:
model = extendedUser
fields = ['username', 'email', 'medic_code', 'password1', 'password2']
视图.py:
from django.shortcuts import render, redirect
from django.contrib import messages
from django.contrib.auth.decorators import login_required
from .forms import UserRegisterForm
def register(request):
if request.method == 'POST':
form = UserRegisterForm(request.POST)
if form.is_valid():
user = form.save()
#user.refresh_from_db()
user.medic_code = form.cleaned_data.get('medic_code')
user.save()
username = form.cleaned_data.get('username')
messages.success(request, f'Your account has been created! You are now able to log in! Your medic code {user.medic_code}') #correct value displayed here
return redirect('login')
else:
form = UserRegisterForm()
return render(request, 'users/register.html', {'form': form})
@login_required
def profile(request):
user = request.user
return render(request, 'users/profile.html', {'user':user})
此外,在我创建用户并在 Django shell 中为该用户显示 medic_code 字段后,将显示正确的值。可能有什么问题?
谢谢!
解决方案
推荐阅读
- angular - @NgModule 使用 SystemJs 在运行时加载动态组件
- bash - awk:特定符号后的替换字符
- ios - iOS 设备和 BLE 堆栈版本 02.12 的问题
- c# - 更改自适应卡片机器人框架的分隔符属性
- c# - 如何在我的(小型)WPF 应用程序中同时使用 MVVM 和 EF Core?
- javascript - 如何更改 Fancybox 3 中的控制栏颜色?
- sql - 在 BigQuery 表中展平多个相同大小的数组列
- php - 如何配置 Symfony 工作流程
- tkinter - 框架/画布中不同小部件的滚动条
- mysql - 具有相关列值的表的最佳数据库表设计