说明
python competitionplacing示例是从最受好评的开源项目中提取的实现代码,你可以参考下面示例的使用方式。
编程语言: Python
命名空间/包名称: partiesmodels
示例#1文件:
competition_api.py项目:
Bombe/demozoo
def add_placing(request, competition_id):
competition = get_object_or_404(Competition, id=competition_id)
if request.method == 'POST':
data = simplejson.loads(request.body)
# move existing placings to accommodate new entry at the stated position
competition.placings.filter(position__gte=data['position']).update(position=F('position') + 1)
production = handle_production(data['production'], competition)
placing = CompetitionPlacing(
production=production,
competition=competition,
ranking=data['ranking'],
position=data['position'],
score=data['score'],
)
placing.save()
Edit.objects.create(action_type='add_competition_placing', focus=competition, focus2=production,
description=(u"Added competition placing for %s in %s competition" % (production.title, competition)), user=request.user)
return HttpResponse(simplejson.dumps(placing.json_data), mimetype="text/javascript")
示例#2文件:
competitions.py项目:
Bombe/demozoo
def import_text(request, competition_id):
if not request.user.is_staff:
return redirect('competition_edit', args=[competition_id])
competition = get_object_or_404(Competition, id=competition_id)
if request.POST:
current_highest_position = CompetitionPlacing.objects.filter(competition=competition).aggregate(Max('position'))['position__max']
next_position = (current_highest_position or 0) + 1
format = request.POST['format']
if format == 'tsv':
rows = result_parser.tsv(request.POST['results'])
elif format == 'pm1':
rows = result_parser.partymeister_v1(request.POST['results'])
elif format == 'pm2':
rows = result_parser.partymeister_v2(request.POST['results'])
elif format == 'wuhu':
rows = result_parser.wuhu(request.POST['results'])
else:
return redirect('competition_edit', args=[competition_id])
for placing, title, byline, score in rows:
if not title:
continue
production = Production(
release_date=competition.shown_date,
updated_at=datetime.datetime.now(),
has_bonafide_edits=False,
title=title)
production.save() # assign an ID so that associations work
if competition.platform:
production.platforms = [competition.platform]
if competition.production_type:
production.types = [competition.production_type]
if byline:
production.byline_string = byline
production.supertype = production.inferred_supertype
production.save()
placing = CompetitionPlacing(
production=production,
competition=competition,
ranking=placing,
position=next_position,
score=score,
)
next_position += 1
placing.save()
Edit.objects.create(action_type='add_competition_placing', focus=competition, focus2=production,
description=(u"Added competition placing for %s in %s competition" % (production.title, competition)), user=request.user)
return redirect('competition_edit', args=[competition_id])
else:
return render(request, 'competitions/import_text.html', {
'competition': competition,
})