Как отобразить значение нового созданного поля настраиваемой модели в Django?

72
10

Я создал пользовательскую модель в 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)

Я могу дать эти два новых значения полей в приложении admin, но когда я пытаюсь вызвать их в своем html, я не знаю, как их ссылать.

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

Это должно быть что-то простое, но я, похоже, не понимаю.

спросил(а) 2016-06-21T07:35:00+03:00 4 года, 4 месяца назад
1
Решение
108

Прежде всего, имена полей модели должны быть выделены нижним регистром:

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

Позже в любом месте шаблона или вида:

{{ user.profile.native_language }}

ответил(а) 2016-06-21T22:09:00+03:00 4 года, 4 месяца назад
42

Прежде всего, html-страница отобразится из view.py, вам нужно отправить значение родного языка из вида в 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>

ответил(а) 2016-06-21T07:57:00+03:00 4 года, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема