如何在Django中显示新创建的自定义模型字段的值?

时间:2016-06-21 04:35:42

标签: python django

我在models.py中创建了一个自定义模型

class UserProfile(models.Model):
#required by the auth model
user = models.OneToOneField(User, on_delete=models.CASCADE)
NativeLanguage = models.CharField(max_length=100)
LearningLanguage = models.CharField(max_length=100)

还在admin.py中创建了一个内联,如下所示:

class ProfileInline(admin.StackedInline):
model = UserProfile
can_delete = False
verbose_name_plural = 'UserProfile'

# Define a new User admin
class UserAdmin(BaseUserAdmin):
    inlines = (ProfileInline, )

# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)

我可以在管理员应用程序中提供这两个新字段值,但是当我尝试在我的html中调用它们时,我不知道如何引用它们。

<p align="center">Native Language: {{????}}</p>

它必须是简单的东西,但我似乎无法得到它。

2 个答案:

答案 0 :(得分:0)

首先从view.py获取html页面呈现 你必须从视图发送本地语言的值到HTML页面 在视图中从模型中检索本地语言..

在views.py ::

from .models import (model class name)  
data = model class name.objects.all().values('NativeLanguage')
return render(request, 'html page', {"data":data})

这样的事情会将数据从数据库呈现到html页面

然后在html页面

<p align="center">Native Language: {{data}}</p>

答案 1 :(得分:0)

首先,模型字段名称应为小写下划线:

class UserProfile(models.Model):
    ...
    user = models.OneToOneField(User, related_name='profile')
    native_language = models.CharField(max_length=100) 

稍后在模板或视图中的任何位置:

{{ user.profile.native_language }}