我的Django模型中有一个称为“公告”的模型,它的工作方式是它有一个消息字段,我可以键入消息的主体以及作为消息接收者的student_id。我正在使用student_id上的多对多字段,以便能够将消息发送给某个特定学生,然后在其前端过滤特定学生的消息,但是当我尝试过滤特定学生时,我在发送邮件时选择了它,它根本不显示任何信息。
models.py
class Announcement_by_dean(models.Model):
student_id = models.ManyToManyField(add_students_by_manager)
message = models.TextField()
sent_date = models.DateField(default=datetime.now(), blank=True)
updated_date = models.DateField(auto_now=True, blank=True)
def __str__(self):
return "message sent on "+ str(self.sent_date)
class add_students_by_manager(models.Model):
manager_ID = models.ForeignKey(Manager_login_information, on_delete=models.CASCADE)
student_ID = models.CharField(max_length=200)
student_name = models.CharField(max_length=200)
phone_number = models.CharField(max_length=200)
address = models.CharField(max_length=200)
dob = models.CharField(max_length=200)
major = models.CharField(max_length=200)
password = models.CharField(max_length=200)
def __str__(self):
return self.student_name
views.py
def dean_page(request):
annoucement_list = Announcement_by_dean.objects.all().order_by('-id')
return render(request, 'dean_page.html', context)
dean_page.html
<div class="tab-pane fade show" id="nav-announcement-list" role="tabpanel" aria-labelledby="nav-announcement-list-tab">
{% if annoucement_list %}
{% for k in annoucement_list %}
<div class="card container mt-4 mb-5">
<div class="card-body">
Messsage: {{k.message}}<br>
Sent to: {{k.student_id.student_ID}}<br>
</div>
</div>
{% endfor %}
{% else %}
<div class="mt-4 ml-5 pl-5">
<span class="text-muted container pt-5 pl-5 ml-5">No Annoucement(s) has been made</span>
</div>
{% endif %}
</div>
您需要遍历student_id,因为它是多对多字段。
{% for student in k.student_id.all %}
{{ student.student_ID }}
{% endfor %}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句