Python 显示来自另一个模型Django的对象列表
我是stackoverflow新手,不知道如何正确粘贴Django代码。请容忍我 无论如何,我的问题是: “我想在模板中将domroom.room_编号显示为列表(示例:房间:401、402、403、404等)。” Models.py>Python 显示来自另一个模型Django的对象列表,python,django,Python,Django,我是stackoverflow新手,不知道如何正确粘贴Django代码。请容忍我 无论如何,我的问题是: “我想在模板中将domroom.room_编号显示为列表(示例:房间:401、402、403、404等)。” Models.py> class Dorm(models.Model): dorm_name = models.CharField(max_length=50, help_text="Enter dorm name") dorm_description = models
class Dorm(models.Model):
dorm_name = models.CharField(max_length=50, help_text="Enter dorm name")
dorm_description = models.TextField(max_length=1000, help_text="Enter dorm description")
dorm_primary_picture = models.ImageField(help_text="Enter dorm primary pic")
dorm_room_count = models.IntegerField(help_text="Enter no. of rooms")
dorm_address = models.CharField(max_length=100,help_text="Enter dorm address")
dorm_caretaker = models.CharField(max_length=50,help_text="Enter caretaker name")
dorm_contact_no = models.CharField(max_length=50,help_text="Enter dorm contact number")
dorm_contact_email = models.EmailField(max_length=254,help_text="Enter dorm email")
dorm_date_added = models.DateTimeField(help_text="Enter Date Dorm was created")
dorm_availability = models.CharField(max_length=50, help_text="Is dorm available")
dorm_date_updated = models.DateTimeField(help_text="Enter Date Dorm information was updated")
dorm_house_rules = models.TextField(max_length=1000, help_text="Enter dorm house rules")
class Meta:
ordering = ["-dorm_name"]
def get_absolute_url(self):
return reverse('dorm-detail',args=[str(self.id)])
def __str__(self):
return self.dorm_name
class DormRoom(models.Model):
room_number = models.CharField(max_length=20, help_text="Enter room number")
room_maxusers = models.IntegerField(help_text="Enter maximum # of room users")
room_dorm = models.ForeignKey(Dorm, on_delete=models.CASCADE)
room_count = models.IntegerField(help_text="Enter # of rooms in this Dorm room")
def get_absolute_url(self):
return reverse('rooms-detail', args=[str(self.id)])
def __str__(self):
return self.room_number
class Meta:
ordering = ('room_number',)
url.py>
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('list/', views.DormsListView.as_view(), name='dorms'),
path('list/<int:pk>', views.DormsDetailView.as_view(), name='dorm-detail'),
path('rooms/', views.DormsRoomView.as_view(), name='rooms'),
path('rooms/<int:pk>', views.DormsRoomsDetailView.as_view(), name='rooms-detail'),
]
Dorm_Detail.html>
{% extends "base_generic.html" %}
{% block content %}
<div class="padding-small"><img class="image-standard" src="{{ dorm.dorm_primary_picture.url }}"/></div>
<h1><b>{{ dorm.dorm_name }}</b></h1>
<h5>Address: {{ dorm.dorm_address }}</h5>
<h5>{{ dorm.dorm_description }}</h5>
<div><br/></div>
<div>Available Rooms: {{ dorm.dorm_room_count}}</div>
<div>Rooms: {{ dormroom.room_number }}</div>
<div><br/></div>
<h4><b>Contact Details</b></h4>
<div>Administrator: {{ dorm.dorm_caretaker }}</div>
<div>Phone Number: {{ dorm.dorm_contact_no }}</div>
<div>Email Address: {{ dorm.dorm_contact_email }}</div>
<div>Date Added: {{ dorm.dorm_date_added }}</div>
<div>Last Updated: {{ dorm.dorm_date_updated }}</div>
<div><br/></div>
<h4><b>House Rules</b></h4>
<div>{{dorm.dorm_house_rules}}</div>
{% endblock %}
{%extensed“base_generic.html”%}
{%block content%}
{{dorm.dorm_name}
地址:{{dorm.dorm_Address}
{{dorm.dorm_description}}
可用房间:{{dorm.dorm\u room\u count}
房间:{{domroom.room_number}
联系方式
管理员:{{dorm.dorm\u管理员}
电话号码:{{dorm.dorm_contact_no}
电子邮件地址:{{dorm.dorm_contact_Email}
添加日期:{dorm.dorm_Date_Added}
上次更新:{{dorm.dorm_date_Updated}
家规
{{宿舍。宿舍规则}
{%endblock%}
使用和:用逗号连接返回的字符串,将房间号添加到
class DormsDetailView(LoginRequiredMixin, generic.DetailView):
model = Dorm
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
context['room_numbers'] = ", ".join(self.object.dormroom_set.values_list('room_number', flat=True))
return context
然后相应地调整模板:
<div><br/></div>
<div>Available Rooms: {{ dorm.dorm_room_count}}</div>
<div>Rooms: {{ room_numbers }}</div>
<div><br/></div>
<h4><b>Contact Details</b></h4>
可用房间:{{dorm.dorm\u room\u count}
房间:{{房间号码}
联系方式
谢谢@以咖啡为基础的饮料。您节省了100个编码小时。:)我将尝试了解有关模板上下文、相关管理器和值列表()的更多信息。这仍然与Django 3相关:
<div><br/></div>
<div>Available Rooms: {{ dorm.dorm_room_count}}</div>
<div>Rooms: {{ room_numbers }}</div>
<div><br/></div>
<h4><b>Contact Details</b></h4>