1. 程式人生 > >已知主題id,獲取相關條目的方法。

已知主題id,獲取相關條目的方法。

已知主題id,獲得主題下所有條目用條目的小寫_set

model.py
from django.db import models

# Create your models here.
class Topic(models.Model):
    text = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.text


class Entry(models.Model):
    #具體到某個主題的條目
    #用外來鍵一個主題有很多條目
    topic = models.ForeignKey(Topic, on_delete=models.CASCADE)#on_delete=models.CASCADE級聯刪除。
    title = models.CharField(max_length=200)
    text = models.TextField(max_length=800)
    date_added = models.DateTimeField(auto_now_add=True)

    class Meta:
        verbose_name_plural = 'entries'
        ordering = ['date_added']


    def __str__(self):

        return self.title[:50] + '.......'
view.py
def entries(request, topic_id):
    # 獲取資料
    topic = Topic.objects.get(id=topic_id)
    entries = topic.entry_set.order_by('-date_added')

    ##處理資料
    content = {'topic': topic, 'entries': entries}
    # 返回響應結果
    return render(request, 'entries.html', context=content)