javascript中django的Python变量?
各位。我开始学习javascript,我一直在研究如何将Django中的python变量发送到javascript文件 我的views.py文件部分如下所示:javascript中django的Python变量?,javascript,python,django,variables,Javascript,Python,Django,Variables,各位。我开始学习javascript,我一直在研究如何将Django中的python变量发送到javascript文件 我的views.py文件部分如下所示: def mailbox(request, mailbox): # Filter emails returned based on mailbox if mailbox == "inbox": emails = Email.objects.filter( user
def mailbox(request, mailbox):
# Filter emails returned based on mailbox
if mailbox == "inbox":
emails = Email.objects.filter(
user=request.user, recipients=request.user, archived=False
)
elif mailbox == "sent":
emails = Email.objects.filter(
user=request.user, sender=request.user
)
elif mailbox == "archive":
emails = Email.objects.filter(
user=request.user, recipients=request.user, archived=True
)
else:
return JsonResponse({"error": "Invalid mailbox."}, status=400)
# Return emails in reverse chronologial order
emails = emails.order_by("-timestamp").all()
return JsonResponse({'allemails' : [email.serialize() for email in emails]}, safe=False)
这是我想要发送变量allemails
的inbox.js文件:
function load_mailbox(mailbox) {
// Show the mailbox and hide other views
document.querySelector('#emails-view').style.display = 'block';
document.querySelector('#compose-view').style.display = 'none';
document.querySelector('#emails-view').innerHTML = `<h3>${mailbox.charAt(0).toUpperCase() + mailbox.slice(1)}</h3>`;
// let x = "Something will be here"
var y = {{ allemails }};
//var y = {{allemails|escapejs}}; I also tried this one.
//var y = '{{ allemails }}'; also this one but it defines y literally as a string {{ allemails }}
// Show the mailbox name//
if (mailbox === 'sent')
{
document.querySelector('#other-view').innerHTML = `<table><tr><td></td></tr><tr><td><h1> ${y}</h1> </td></tr></table>`;
}
}
非常感谢您的合作。
期待您的来信
class Email(models.Model):
user = models.ForeignKey("User", on_delete=models.CASCADE, related_name="emails")
sender = models.ForeignKey("User", on_delete=models.PROTECT, related_name="emails_sent")
recipients = models.ManyToManyField("User", related_name="emails_received")
subject = models.CharField(max_length=255)
body = models.TextField(blank=True)
timestamp = models.DateTimeField(auto_now_add=True)
read = models.BooleanField(default=False)
archived = models.BooleanField(default=False)
def serialize(self):
return {
"id": self.id,
"sender": self.sender.email,
"recipients": [user.email for user in self.recipients.all()],
"subject": self.subject,
"body": self.body,
"timestamp": self.timestamp.strftime("%b %d %Y, %I:%M %p"),
"read": self.read,
"archived": self.archived
}