Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 显示来自另一个模型Django的对象列表_Python_Django - Fatal编程技术网

Python 显示来自另一个模型Django的对象列表

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

我是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.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>