【发布时间】:2016-01-27 12:35:45
【问题描述】:
我正在创建一个将服务器存储在数据库中的 Django 应用程序。服务器来自通过第三方应用程序的列表。所以我的应用程序需要通过列表添加任何尚未在数据库中的服务器,并删除任何在数据库中但不在列表中的服务器。但是,当我尝试删除部分要求时,我不断收到 referenced before assignment 代码部分的错误 Server.objects.filter(server_name in i)
现在我不确定我是否可以像我所做的那样做server_name in i,但我只是在玩弄它。执行Server.objects.filter(server_name=i) 时出现错误(我知道应该可以)。任何人都可以帮忙吗?
from django.shortcuts import render
from django.http import HttpResponse
from .models import Server
from hive.cloud.pyraxhelpers.pyraxhelpers import list_hostnames
from django.core.exceptions import ObjectDoesNotExist
def server_home(request):
return render(request, 'templates/index.html', {})
def server(request):
server_name = Server.objects.get(server_name)
for i in list_hostnames():
print "Going through list"
if Server.objects.filter(server_name=i).exists():
print "Server exists so skip"
else:
if Server.objects.filter(server_name in i):
print "Add the new server"
server_name = Server.objects.create(server_name=i)
return HttpResponse("Added")
else:
print "Delete"
return HttpResponse("Deleted")
return HttpResponse("Worked")
型号
class Server(models.Model):
server_name = models.CharField(primary_key=True, max_length=250)
renewal_date = models.DateField('expiry date', null=False, default=timezone.now)
deletion_date = models.DateField('deletion date', null=False, default=timezone.now)
def __unicode__(self):
return self.server_name
【问题讨论】:
-
从哪里得到
server_name参数? -
server_name 来自模型,是数据库中的一个字段,但我不知道如何引用它
-
我认为这条线根本没有任何作用,因为无论如何你以后都不会使用它。只需将其注释掉,看看会发生什么。您还有其他问题,例如两个
else块。 -
.. 和第一个 else 块中的无效查找 (
sever_name in i)。 -
忽略这些问题,缩进只是堆栈溢出,我在帖子中确实提到过 server_name in i 只是我在玩,看看有什么用。它与我所质疑的错误无关。我不能只是评论它,因为我需要它来满足要求。
标签: python django django-views