【发布时间】:2021-05-12 07:29:45
【问题描述】:
在这种情况下,当用 js 将外键的名称放在 p 标记中时,它显示未定义,但它以正确的用户身份获取输入但无法显示它,因为它说的是未定义
js 代码
$(document).ready(function(){
// $('#submit').onclick(function(){
// $('#message').val=''
// })
$(document).on('submit','#post_form',function(e){
e.preventDefault();
$.ajax({
type: 'POST',
url:"{% url 'create' %}",
data:{
message: $('#message').val(),
csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(),
},
success:function(){
window.location = url;
}
});
});
setInterval(function()
{
$.ajax({
type:'GET',
url:"{% url 'comments' %}",
success:function(response){
$('.display').empty();
for(var key in response.comments){
这是显示未定义的地方,有什么方法可以将其转换为字符串 console.log(response.cmets[key].user);
var temp = "<div class='message_area'><p id='messagetext'>"+response.comments[key].message+"</p></div>"
$(".display").append(temp);
}
},
error:function(response){
console.log("no data found")
}
});
}, 500);
});
views.py
def create(request):
if request.method == "POST":
author = request.user
message = request.POST['message']
message = comments(user=author,message=message)
message.save()
模型
class comments(models.Model):
userId = models.AutoField(primary_key=True)
user = models.ForeignKey(User,on_delete=models.CASCADE)
message = models.CharField(max_length=100,blank=False)
date = models.TimeField(auto_now_add=True)
def __str__(self):
return f'{self.user} comments'
【问题讨论】:
-
嗨,首先您不需要在 django 中为模型定义
Id字段,因为总会有一个自动生成的字段。在create函数内的views.py中的第二个,您使用单词message表示所有内容!为什么?没有任何字符可以使用吗?您在那里所做的事情会导致多次出现异常错误和错误,因此请避免这样做。但是对于这个问题我会写一个答案
标签: javascript jquery django ajax django-templates