我是一个新的程序员,对Django/Python非常陌生。我正在建立一个应用程序,整合赛艇比赛的结果。我有以下型号型号.py. 你知道吗
class Crew(models.Model):
name = models.CharField(max_length=50)
id = models.IntegerField(primary_key=True)
composite_code = models.CharField(max_length=10, blank=True, null=True)
club = models.ForeignKey(Club, related_name='crews',
on_delete=models.CASCADE)
rowing_CRI = models.IntegerField(blank=True, null=True)
rowing_CRI_max = models.IntegerField(blank=True, null=True)
sculling_CRI = models.IntegerField(blank=True, null=True)
sculling_CRI_max = models.IntegerField(blank=True, null=True)
event = models.ForeignKey(Event, related_name='crews',
on_delete=models.CASCADE)
status = models.CharField(max_length=20)
penalty = models.IntegerField(default=0)
handicap = models.IntegerField(default=0)
manual_override_minutes = models.IntegerField(default=0)
manual_override_seconds = models.IntegerField(default=0)
manual_override_hundredths_seconds = models.IntegerField(default=0)
bib_number = models.IntegerField(blank=True, null=True)
band = models.ForeignKey(Band, related_name='bands',
on_delete=models.CASCADE, blank=True, null=True)
@property
def raw_time(self):
if len(self.times.filter(tap='Start')) > 1 or len(self.times.filter(tap='Finish')) > 1:
return 0
start = self.times.get(tap='Start').time_tap
end = self.times.get(tap='Finish').time_tap
return end - start
@property
def race_time(self):
# The race time can include the penalty as by default it is 0
return self.raw_time + self.penalty*1000
@property
def event_band(self):
if not self.band:
return self.event.name
return str(self.event.name) + ' ' + str(self.band.name)
class RaceTime(models.Model):
sequence = models.IntegerField()
bib_number = models.IntegerField(blank=True, null=True,)
tap = models.CharField(max_length=10)
time_tap = models.BigIntegerField()
crew = models.ForeignKey(Crew, related_name='times',
on_delete=models.SET_NULL, blank=True, null=True,)
我想创建两个附加属性。一个在所有组员中按race_time()
排列组员,另一个在其event_band()
内排列组员。你知道吗
下面是我第一次尝试将整体排名创建为一个名为rank的属性:
@property
def rank(self):
crews = Crew.objects.filter(status__in=('Accepted')).filter(race_time__isnull=False)
race_times = list(map(lambda crew: crew.race_time, crews)).sort()
rank = race_times.index(self.race_time) + 1
return rank
此代码失败,出现以下错误:
内部服务器错误:/api/crews/ 回溯(最近一次呼叫): 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/django/core/handlers/例外.py,第34行,在内部 response=获取响应(请求) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/django/core/handlers/基本.py“,第115行,在\u get \u response中” 响应=self.process\u异常\u by \u中间件(e,请求) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/django/core/handlers/基本.py“,第113行,在\u get \u response中” response=wrapped\u callback(请求,*回调参数,**回调参数) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/django/views/decorators/csrf.py公司“,第54行,在环绕视图中” 返回视图函数(*args,**kwargs) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/django/views/generic/基本.py“,第71行,视图中 返回自行调度(请求,*args,**kwargs) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/rest\u framework/视图.py“,第505行,发送中 响应=self.handle\u异常(exc公司) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/rest\u framework/视图.py,第465行,在handle\u exception中 self.raise\u uncaught\u异常(exc公司) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/rest\u framework/视图.py,第476行,在raise\u uncaught\u exception中 提升exc 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/rest\u framework/视图.py,第502行,发送中 响应=处理程序(请求,*args,**kwargs) 文件“/Users/sianalcock/Development/pairshead results/results”/视图.py“,第82行,在get中” 返回响应(序列化程序.data)#将JSON发送到客户端 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/rest\u framework/序列化程序.py,第757行,在数据中 ret=super().数据 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/rest\u framework/序列化程序.py,第261行,在数据中 自身数据=自组织表示法(自身实例) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/rest\u framework/序列化程序.py“,第675行,表示为” self.child.to\u表示(item)对于iterable中的item 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/rest\u framework/序列化程序.py,第675行 self.child.to\u表示(item)对于iterable中的item 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/rest\u framework/序列化程序.py“,第513行,表示为” 属性=field.get\u属性(实例) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/rest\u framework/字段.py“,第443行,在get\u属性中” 返回get\u属性(实例,自源属性) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/rest\u framework/字段.py“,第93行,在get\u attri中”但是 instance=getattr(实例,attr) 文件“/Users/sianalcock/Development/pairshead results/results”/型号.py“,第63行,排名 船员=乘员对象过滤器(status\u in='Accepted').filter(race\u time\uu isnull=False) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/django/db/models/查询.py,第892行,在过滤器中 返回self.\u filter\u或\u exclude(False,*args,**kwargs) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/django/db/models/查询.py“,行910,在\u filter\u或\u exclude中” 克隆.查询.添加(Q(*args,**kwargs)) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/django/db/models/sql/查询.py“,第1290行,在add\u q中” 子句,u=self.\u add \u q(q\u object,自用别名) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/django/db/models/sql/查询.py“,第1318行,在\u add\u q中” split\u subq=split\u subq,simple\u col=simple\u col, 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/django/db/models/sql/查询.py,第1190行,内置过滤器 查找、部件、引用的表达式=self.solve\查找\类型(参数) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/django/db/models/sql/查询.py,第1049行,在solve\u lookup\u类型中 _,字段,\,查找\u部分=self.names\u到\u路径(u分裂,self.get\u元()) 文件“/Users/sianalcock/.local/share/virtualenvs/pairshead-results-3ZeqXKPg/lib/python3.7/site-packages/django/db/models/sql/查询.py,第1420行,在名称\u到\u路径中 “选项有:%s”%(名称,,“.join(可用))) django.core.exceptions异常.FieldError:无法将关键字“race\u time”解析为字段。选择包括:乐队、乐队id、围嘴号码、俱乐部、俱乐部id、参赛者、组合代码、赛事、赛事id、残障、id、手动超驰百分之一秒、手动超驰分钟、手动超驰秒、姓名、处罚、原始时间、赛艇CRI、赛艇CRI max、赛艇CRI max、赛艇CRI max、赛艇CRI max、状态、仅时间、次数 [2019年9月30日13:46:08]“GET/api/crews/HTTP/1.1”500 23531
我说的对吗?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐