Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-objects.all()不显示任何内容_Python_Html_Django_Database_Admin - Fatal编程技术网

Python Django-objects.all()不显示任何内容

Python Django-objects.all()不显示任何内容,python,html,django,database,admin,Python,Html,Django,Database,Admin,我试图从模型中获取Django中的对象列表 我只想从请求用户那里获取“dht节点”列表,但它在html文件中没有显示任何内容(好像列表是空的)。我正在使用的用户有2个“dht节点”,它们显示在django admin中 我不知道出了什么问题,因为如果我在views函数中使用指令“member.dht.create(…)”,然后像这样创建一个新的“dht节点”,就会显示这个。只有通过表单输入的“dht节点”不显示。可以是表格吗 非常感谢,以下是我的代码: Models.py 类节点(models.

我试图从模型中获取Django中的对象列表

我只想从请求用户那里获取“dht节点”列表,但它在html文件中没有显示任何内容(好像列表是空的)。我正在使用的用户有2个“dht节点”,它们显示在django admin中

我不知道出了什么问题,因为如果我在views函数中使用指令“member.dht.create(…)”,然后像这样创建一个新的“dht节点”,就会显示这个。只有通过表单输入的“dht节点”不显示。可以是表格吗

非常感谢,以下是我的代码:

Models.py

类节点(models.Model):
name=models.CharField(主键=True,null=False,最大长度=50)
description=models.CharField(默认值=None,null=False,最大长度=250)
topic=models.CharField(默认值=None,null=False,max_length=50,unique=True)
def ___; unicode(自):
返回self.name
dht类(节点):
temp=models.IntegerField(默认值=None,null=True)
hum=models.IntegerField(默认值=None,null=True)
类UserProfile(用户):
uid=models.CharField(默认值=None,null=False,最大长度=250)
dht=models.ManyToManyField(dht,blank=True)
def ___; unicode(自):
返回self.user.username
Views.py-dht列表-

@login\u必需(login\u url='/web/login')
def listDhtSensor(请求):
成员=request.user.userprofile
list=member.dht.all()
返回呈现(请求'web/listDhtSensor.html',{'list':list})
Html-listDhtSensor.Html-

{%block content%}
{列表%中的dht为%1}
{{dht.name}
{{dht.topic}
{%endfor%}
{%endblock%}
Forms.py

类newDHTSensorForm(forms.ModelForm):
类元:
型号=dht
字段=['name',
“说明”,
'主题',]
标签={'name':'name',
'说明':'说明',
'主题':'主题',}
排除=['temp','hum']
Views.py-dht表单-

@login\u必需(login\u url='/web/login')
def新DHT传感器(请求):
如果request.method==“POST”:
form=newDHTSensorForm(request.POST)
如果form.is_有效():
post=form.save(commit=False)
post.save()
返回重定向('/web/dhtDetail')
其他:
form=newDHTSensorForm()
返回呈现(请求'web/newDhtSensor.html',{'form':form})
Html-newDhtSensor.Html-

{%block content%}
{%csrf_令牌%}
{{form.name.errors.as_text}
姓名:

说明:

{{form.topic.errors.as_text} 主题:

拯救 {%endblock%}
它没有显示任何内容,因为您没有将您的
dht
对象链接到该
UserProfile
,因此,如果您稍后查询该
UserProfile
dht
,显然列表是空的。您应该将其添加到
dht
关系中,如:

@login_required(login_url = '/web/login')
def newDHTSensor(request):
    if request.method == "POST":
        form = newDHTSensorForm(request.POST)
        if form.is_valid():
            post = form.save()
            request.user.userprofile.dht.add(post)
            return redirect('/web/dhtDetail')
    else:
        form = newDHTSensorForm()
    return render(request, 'web/newDhtSensor.html', {'form': form})
@login\u必需(login\u url='/web/login')
def新DHT传感器(请求):
如果request.method==“POST”:
form=newDHTSensorForm(request.POST)
如果form.is_有效():
post=form.save()
request.user.userprofile.dht.add(post)
返回重定向('/web/dhtDetail')
其他:
form=newDHTSensorForm()
返回呈现(请求'web/newDhtSensor.html',{'form':form})

请注意,您首先需要保存
post
,因此应该省略
commit=False
参数。

它不显示任何内容,因为您没有将您的
dht
对象链接到该
UserProfile
,因此,如果您以后查询该
UserProfile
dht
,显然该列表是空的。您应该将其添加到
dht
关系中,如:

@login_required(login_url = '/web/login')
def newDHTSensor(request):
    if request.method == "POST":
        form = newDHTSensorForm(request.POST)
        if form.is_valid():
            post = form.save()
            request.user.userprofile.dht.add(post)
            return redirect('/web/dhtDetail')
    else:
        form = newDHTSensorForm()
    return render(request, 'web/newDhtSensor.html', {'form': form})
@login\u必需(login\u url='/web/login')
def新DHT传感器(请求):
如果request.method==“POST”:
form=newDHTSensorForm(request.POST)
如果form.is_有效():
post=form.save()
request.user.userprofile.dht.add(post)
返回重定向('/web/dhtDetail')
其他:
form=newDHTSensorForm()
返回呈现(请求'web/newDhtSensor.html',{'form':form})
请注意,您首先需要保存
post
,因此应该省略
commit=False
a参数