我有一个Django项目,其结构如下:在主页上,有很多主题。在每个主题中,都有许多与之相关的条目。主题和条目信息可以是访问者的输入。现在,我需要按组从条目中获取数据。例如,对于主题“水果”,条目包括“苹果”,“梨”,“香蕉”;主题“运输”,条目包括“汽车”,“飞机”。
我需要获取的数据是:
[[(u'apple',), (u'pear',), (u'banana',)], [(u'car',), (u'plane',)]].
如何在view.py函数中编辑编码?我建议像这样:
def button_view(request):
import sys
topics = Topic.objects.filter(owner=request.user).order_by("date_added")
a_content_list = []
for a in topics
entries = Entry.objects.get(topic = a)
a_content_list.append(entries)
这是我在models.py中设置的内容:
class Topic(models.Model):
text = models.CharField(max_length=200)
date_added = models.DateTimeField(auto_now_add=True)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
def _str_(self):
return self.text
class Entry(models.Model):
topic = models.ForeignKey(Topic, on_delete=models.CASCADE)
text = models.TextField()
date_added = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name_plural = 'entries'
def _str_(self):
return self.text[:50] + "..."
#on_delete=models.CASCADE,
a_content_list就是我想要的吗?
答案 0 :(得分:0)
编辑:我误解了要求。
要获取条目列表的列表,每个列表都包含特定主题的条目:
entry_values = [
[entry.value for entry in topic.entries.all()]
for topic in Topic.objects.filter(owner=request.user).order_by("date_added")
]
这假设您已将ForeignKey
的{{1}}定义中的related_name
设置为“ entries”。