Я работаю со своим первым проектом Django, и я напечатал свой первый тег шаблона, используя представление на шаблоне моей страницы. Я хотел бы отобразить некоторые другие значения базы данных на моей странице, но повторение того же процесса кажется неправильным.
Вот мои две модели:
class Drink(models.Model):
drink_name = models.CharField(max_length=100)
strength = models.IntegerField(default=0)
def __str__(self):
return self.drink_name
class status(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
health = models.IntegerField(default=100)
strength = models.IntegerField(default=50)
charisma = models.IntegerField(default=50)
И мой взгляд:
from django.shortcuts import render
from .models import Drink
from .models import status
# Create your views here.
def index(request):
served_drinks = Drink.objects.order_by('strength')
context = {'served_drinks': served_drinks}
return render(request, 'tavern/index.html', context)
И мой шаблон:
Hello {{ user.get_username }}, welcome to the tavern.
<br><br>
<div class="card-panel teal lighten-3">Grab a drink from the bar</div>
{% if served_drinks %}
<ul>
{% for drink in served_drinks %}
<li>{{ drink.drink_name }} with a strength of {{ drink.strength }}</li>
{% endfor %}
</ul>
{% else %}
<p>No drinks are available.</p>
{% endif %}
Что возвращает:
Hello admin, welcome to the tavern.
Grab a drink from the bar
Water with a strength of 0
Wine with a strength of 3
Ale with a strength of 5
Black Ale with a strength of 9
Как вы можете видеть, я распечатал мой served_drinks
объект в шаблоне, но я также хочу распечатать данные модели status
на этой странице.
Я пытался просто добавить {{ status.health }}
в шаблон, но это не работает. Должен ли я добавлять дополнительную информацию в представление index
? Если так, что если я хочу показать эту информацию на многих страницах?