Django-如何从关系中获取数据?
我试图通过多一到多的一对多关系获取数据。
view.py
class PublisherDetailView(generic.DetailView):
model = Publisher
template_name = 'store/publisher_detail_view.html'
models.py
class Publisher(models.Model):
name = models.CharField(null=False, max_length=30)
image = models.ImageField(upload_to='publisher_images/')
class Book(models.Model):
title = models.CharField(null=False, max_length=30)
description = models.CharField(max_length=1000)
publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE)
class reader(models.Model):
name = models.CharField(max_length=40)
book = models.ManyToManyField(Book)
publisher_detail_view.html
{% for reader in publisher.book_set.readers.all %}
<p>{{ reader.name }} </p>
{% endfor %}
我只想从Specfic Publisher那里吸引所有读者。模板中正确的代码是什么? Publisher.book_set.readers.all
对我有意义(早期初学者),但不起作用
I try to get data over a many-to-many and a one-to-many relationship.
view.py
class PublisherDetailView(generic.DetailView):
model = Publisher
template_name = 'store/publisher_detail_view.html'
models.py
class Publisher(models.Model):
name = models.CharField(null=False, max_length=30)
image = models.ImageField(upload_to='publisher_images/')
class Book(models.Model):
title = models.CharField(null=False, max_length=30)
description = models.CharField(max_length=1000)
publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE)
class reader(models.Model):
name = models.CharField(max_length=40)
book = models.ManyToManyField(Book)
publisher_detail_view.html
{% for reader in publisher.book_set.readers.all %}
<p>{{ reader.name }} </p>
{% endfor %}
I just want to get all readers from a specfic publisher. What is the right code in the template? publisher.book_set.readers.all
makes sense to me (early beginner), but doesn't work
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
book_set.readers
不起作用,因为book_set
是管理书籍列表的经理。要吸引读者,您必须通过书籍进行迭代:book_set.readers
doesn't work becausebook_set
is a manager that manages a list of books. To get the readers, you have to iterate through the books: