簡體   English   中英

數組上的DetailView上的Django ListData

[英]Django ListData on DetailView from Array

這是我的models.py

class Absent(models.Model):
    ...
    ListOfDate = models.TextField(blank=True, null=True, default='Nothing')
    ...

在我的情況下, ListOfDate數據將如下所示:

[datetime.date(2018, 4, 18), 
 datetime.date(2018, 5, 15), 
 datetime.date(2018, 5, 16), 
 datetime.date(2018, 5, 17)]

我使用ListOfDate.append(value)填充ListOfData

這是我的views.py

class Attend(DetailView):
    context_object_name = 'attends'
    model = models.Attend

ListView常用

  {% for attend in attends %}
    <td>{{ attends.ListOfDate }}</td>
  {% endfor %}

用於顯示數據列表。 但將全部集中在一欄中。 像這樣:

[datetime.date(2018, 4, 18), 
 datetime.date(2018, 5, 15), 
 datetime.date(2018, 5, 16), 
 datetime.date(2018, 5, 17)]

在我的情況下,我ListOfDate上面一樣列出ListOfDate ,但不在一欄中列出。 像這樣:

+-----+--------------------------------+
| #   | Date                           |
+-----+--------------------------------+
| 1   | [datetime.date(2018, 4, 18),   |  
|     |  datetime.date(2018, 5, 15),   |
|     |  datetime.date(2018, 5, 16),   |
|     |  datetime.date(2018, 5, 17)]   |
+-----+--------------------------------+

           |
           |
           v

+-----+----------------+
| #   | Date           |
+-----+----------------+
| 1   | 2018-4-18      |
+-----+----------------+
| 2   | 2018-5-15      |
+-----+----------------+
| 3   | 2018-5-16      |
+-----+----------------+
| 4   | 2018-5-17      |
+-----+----------------+

TextField S, CharField S,通常僅用於存儲, 以及文本。 是的,有一些特殊的子類可以存儲,例如JSON對象和IP地址,但是通常,如果您不必篩選這些對象的子部分,或者不必將它們視為單獨的子元素,則通常這是一個好主意。 JSON字段還不錯,特別是因為它們引入了某種很難在(關系)數據庫中表示的動態特性,但是人們應該在關系數據庫中謹慎使用它們。

在這里,您基本上有兩個實體: AbsentAbsentDate ,並且這是AbsentAbsentDate之間的一對多關系。 我們可以使用ForeignKey對此建模:

class Absent(models.Model):
    # ...
    pass

class AbsentDate(models.Model):
    absent = models.ForeignKey(Absent)
    date = models.DateField()

    class Meta:
        ordering = ['date']

因此,這意味着我們已經構建了如下所示的內容:

+--------+ 1   N +------------+
| Absent |-------| AbsentDate |
+--------+       +------------+
                 | date       |
                 +------------+

然后,對於某個Absent實例,我們可以使用以下命令查詢相關的AbsentDate集合:

our_absent_instance.absentdate_set.all()

因此,我們可以在類似以下的模板中使用它:

{% for attend in attends %}
  <td>
  {% for attenddate in attend.absentdate_set.all %}
      {{ attends.attenddate.date }}
  {% endfor %}
  </td>
{% endfor %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM