【发布时间】:2009-09-18 12:20:58
【问题描述】:
我是 Django 的新手,所以我只是编了一个项目来了解它,但我对这段代码有一点问题,如果它可用,我希望能够作为汽车 obj,所以我这样做了一个:
>>>cars = Car.objects.all()
>>>print cars[0].category
>>>'A'
>>>cars[0].available(fr, to)
结果是:
>>>global name 'category' is not defined
看来我无法访问班级中的 self.category,有什么想法吗?
from django.db import models
class Car(models.Model):
TRANSMISSION_CHOICES = (
('M', 'Manual'),
('A', 'Automatic'),
)
category = models.CharField("Category",max_length=1,primary_key=True)
description = models.CharField("Description",max_length=200)
numberOfCars = models.IntegerField("Number of cars")
numberOfDoors = models.IntegerField("Number of doors")
transmission = models.CharField("Transmission", max_length=1, choices=TRANSMISSION_CHOICES)
passengers = models.IntegerField("Number of passengers")
image = models.ImageField("Image", upload_to="photos/%Y/%m/%d")
def available(self, fr, to):
rents = Rent.objects.filter(car=self.category)
rents = rents.excludes(start < fr)
rents = rents.exclude(end > to)
return cont(rents)
def __unicode__(self):
return "Class " + self.category
class Rent(models.Model):
car = models.ForeignKey(Car)
start = models.DateTimeField()
end = models.DateTimeField()
childrenSeat = models.BooleanField()
extraDriver = models.BooleanField()
def __unicode__(self):
return str(self.car) + " From: " + str(self.start) + " To: " + str(self.end)
【问题讨论】:
-
您的示例会话格式不正确,因此很难看到发生了什么。我在代码中看不出有任何理由说明您为什么会收到有关“类别”的投诉。你确定这段代码真的会产生这个错误吗?
-
我已经通过查看原始文本格式化了代码,但我真的不明白你是如何得到这个错误的。
-
是的,它会产生该错误。格式有什么问题?
-
请给出完整的回溯。
-
文件“/mysite/bookings/models.py”,第 19 行,可用租金 = Rent.objects.filter(car=self.category) NameError: global name 'category' is not defined我这样做时得到的确切错误:>>> from mysite.bookings.models import Car, Rent >>> cars = Car.objects.all() >>> cars[0].available(start, end)跨度>
标签: python django django-models