本文整理汇总了Python中c2g.models.Exercise.save方法的典型用法代码示例。如果您正苦于以下问题:Python Exercise.save方法的具体用法?Python Exercise.save怎么用?Python Exercise.save使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类c2g.models.Exercise
的用法示例。
在下文中一共展示了Exercise.save方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: add_exercise
# 需要导入模块: from c2g.models import Exercise [as 别名]
# 或者: from c2g.models.Exercise import save [as 别名]
def add_exercise(request):
# try:
# common_page_data = get_common_page_data(request, course_prefix, course_suffix)
# except:
# raise Http404
# don't catch video DoesNotExist here because we want some tangible error to happen if
# the video id changes in form submission, like emailing us
video = Video.objects.get(id=request.POST["video_id"])
video_time = request.POST["videotime"]
file_content = request.FILES["exercise"]
file_name = file_content.name
exercise = Exercise()
exercise.handle = request.POST["course_prefix"] + "--" + request.POST["course_suffix"]
exercise.fileName = file_name
exercise.file.save(file_name, file_content)
exercise.save()
videoToEx = VideoToExercise(video=video, exercise=exercise, is_deleted=False, video_time=video_time)
videoToEx.save()
return HttpResponseRedirect(
reverse(
"courses.videos.views.manage_exercises",
args=(request.POST["course_prefix"], request.POST["course_suffix"], video.slug),
)
)
示例2: manage_exercises
# 需要导入模块: from c2g.models import Exercise [as 别名]
# 或者: from c2g.models.Exercise import save [as 别名]
def manage_exercises(request, course_prefix, course_suffix, video_slug):
#Get all necessary information about the problemset
try:
common_page_data = get_common_page_data(request, course_prefix, course_suffix)
except:
raise Http404
data = {'common_page_data': common_page_data}
manage_form = ManageExercisesForm(initial={'course':common_page_data['course'].id})
video = Video.objects.getByCourse(common_page_data['course']).get(slug=video_slug)
videoToExs = VideoToExercise.objects.filter(video__course=common_page_data['course'], is_deleted=False, video__slug=video_slug).order_by('video_time')
used_exercises = []
exercise_attempted = False
if len(ProblemActivity.objects.filter(video_to_exercise__video=video.image)) > 0:
exercise_attempted = True
#Get the list of exercises currently in this problem set
for videoToEx in videoToExs:
used_exercises.append(videoToEx.exercise.id)
#Get all the exercises in the course but not in this problem set to list in add from existing
#Q objects allow queryset objects to be ORed together
exercises = Exercise.objects.all().filter(Q(problemSet__course=common_page_data['course'])|Q(video__course=common_page_data['course'])).exclude(id__in=used_exercises).distinct()
additional_form = AdditionalExercisesForm(initial={'course':common_page_data['course'].id}, used_exercises=exercises)
reorder_form = ReorderExercisesForm(current_exercises=videoToExs)
#Form processing action if form was submitted
if request.method == 'POST':
manage_form = ManageExercisesForm(request.POST, request.FILES)
additional_form = AdditionalExercisesForm(request.POST, used_exercises=exercises)
if manage_form.is_valid():
video = Video.objects.get(id=request.POST['video_id'])
file_content = request.FILES['file']
file_name = file_content.name
exercise = Exercise()
exercise.handle = request.POST['course_prefix'] + '--' + request.POST['course_suffix']
exercise.fileName = file_name
exercise.file.save(file_name, file_content)
exercise.save()
video_time = request.POST['video_time']
videoToEx = VideoToExercise(video=video, exercise=exercise, video_time=video_time, is_deleted=0, mode='draft')
videoToEx.save()
return HttpResponseRedirect(reverse('courses.videos.views.manage_exercises', args=(request.POST['course_prefix'], request.POST['course_suffix'], video.slug,)))
#If form was not submitted then the form should be displayed or if there were errors the page needs to be rendered again
data['manage_form'] = manage_form
data['additional_form'] = additional_form
data['reorder_form'] = reorder_form
data['course_prefix'] = course_prefix
data['course_suffix'] = course_suffix
data['video'] = video
data['videoToExs'] = videoToExs
data['exercise_attempted'] = exercise_attempted
data['exercises'] = exercises
data['exercise_attempted'] = exercise_attempted
return render_to_response('videos/manage_exercises.html', data, context_instance=RequestContext(request))
示例3: manage_exercises
# 需要导入模块: from c2g.models import Exercise [as 别名]
# 或者: from c2g.models.Exercise import save [as 别名]
def manage_exercises(request, course_prefix, course_suffix, pset_slug):
#Get all necessary information about the problemset
try:
common_page_data = get_common_page_data(request, course_prefix, course_suffix)
except:
raise Http404
data = {'common_page_data': common_page_data}
form = ManageExercisesForm(initial={'course':common_page_data['course'].id})
pset = ProblemSet.objects.getByCourse(common_page_data['course']).get(slug=pset_slug)
psetToExs = ProblemSetToExercise.objects.getByProblemset(pset).select_related('exercise', 'problemSet')
used_exercises = []
problemset_taken = False
if len(ProblemActivity.objects.filter(problemset_to_exercise__problemSet=pset.image)) > 0:
problemset_taken = True
#Get the list of exercises currently in this problem set
for psetToEx in psetToExs:
used_exercises.append(psetToEx.exercise.id)
#Get all the exercises in the course but not in this problem set to list in add from existing
#Q objects allow queryset filters to be ORed together
exercises = Exercise.objects.all().filter(Q(problemSet__course=common_page_data['course'])|Q(video__course=common_page_data['course'])).exclude(id__in=used_exercises).distinct()
#Form processing action if form was submitted
if request.method == 'POST':
form = ManageExercisesForm(request.POST, request.FILES)
if form.is_valid():
pset = ProblemSet.objects.get(id=request.POST['pset_id'])
file_content = request.FILES['file']
file_name = file_content.name
exercise = Exercise()
exercise.handle = request.POST['course_prefix'] + '--' + request.POST['course_suffix']
exercise.fileName = file_name
exercise.file.save(file_name, file_content)
exercise.save()
index = len(ProblemSetToExercise.objects.getByProblemset(pset))
psetToEx = ProblemSetToExercise(problemSet=pset, exercise=exercise, number=index, is_deleted=0, mode='draft')
psetToEx.save()
return HttpResponseRedirect(reverse('problemsets.views.manage_exercises', args=(request.POST['course_prefix'], request.POST['course_suffix'], pset.slug,)))
#If form was not submitted then the form should be displayed or if there were errors the page needs to be rendered again
data['form'] = form
data['course_prefix'] = course_prefix
data['course_suffix'] = course_suffix
data['pset'] = pset
data['psetToExs'] = psetToExs
data['problemset_taken'] = problemset_taken
data['exercises'] = exercises
return render_to_response('problemsets/manage_exercises.html', data, context_instance=RequestContext(request))
示例4: add_exercise
# 需要导入模块: from c2g.models import Exercise [as 别名]
# 或者: from c2g.models.Exercise import save [as 别名]
def add_exercise(request):
# try:
# common_page_data = get_common_page_data(request, course_prefix, course_suffix)
# except:
# raise Http404
video = Video.objects.get(id=request.POST['video_id'])
video_time = request.POST['videotime']
file_content = request.FILES['exercise']
file_name = file_content.name
exercise = Exercise()
exercise.handle = request.POST['course_prefix'] + '--' + request.POST['course_suffix']
exercise.fileName = file_name
exercise.file.save(file_name, file_content)
exercise.save()
videoToEx = VideoToExercise(video=video, exercise=exercise, is_deleted=False, video_time=video_time)
videoToEx.save()
return HttpResponseRedirect(reverse('courses.videos.views.manage_exercises', args=(request.POST['course_prefix'], request.POST['course_suffix'], video.slug,)))
示例5: manage_exercises
# 需要导入模块: from c2g.models import Exercise [as 别名]
# 或者: from c2g.models.Exercise import save [as 别名]
def manage_exercises(request, course_prefix, course_suffix, video_slug):
#Get all necessary information about the problemset
try:
common_page_data = get_common_page_data(request, course_prefix, course_suffix)
except:
raise Http404
data = {'common_page_data': common_page_data}
manage_form = ManageExercisesForm(initial={'course':common_page_data['course'].id})
try:
video = Video.objects.getByCourse(common_page_data['course']).get(slug=video_slug)
except Video.DoesNotExist:
raise Http404
videoToExs = VideoToExercise.objects.filter(video__course=common_page_data['course'], is_deleted=False, video__slug=video_slug).order_by('video_time')
used_exercises = []
exercise_attempted = False
if ProblemActivity.objects.filter(video_to_exercise__video=video.image).exists():
exercise_attempted = True
#Get the list of exercises currently in this problem set
for videoToEx in videoToExs:
used_exercises.append(videoToEx.exercise.id)
#Get all the exercises in the course but not in this problem set to list in add from existing
#Q objects allow queryset objects to be ORed together
exercises = Exercise.objects.all().filter(Q(problemSet__course=common_page_data['course'])|Q(video__course=common_page_data['course'])).exclude(id__in=used_exercises).distinct()
additional_form = AdditionalExercisesForm(initial={'course':common_page_data['course'].id}, used_exercises=exercises)
reorder_form = ReorderExercisesForm(current_exercises=videoToExs)
#Form processing action if form was submitted
if request.method == 'POST':
manage_form = ManageExercisesForm(request.POST, request.FILES)
additional_form = AdditionalExercisesForm(request.POST, used_exercises=exercises)
if manage_form.is_valid():
#don't catch video DoesNotExist here because we want some tangible error to happen if
#the video id changes in form submission, like emailing us
video = Video.objects.get(id=request.POST['video_id'])
video_time = request.POST['video_time']
file_content = request.FILES['file']
file_name = file_content.name
exercises = Exercise.objects.filter(handle=course_prefix+"--"+course_suffix,is_deleted=0)
exercise_exists = False
for exercise in exercises:
if exercise.fileName == file_name:
#We don't wipe out all problem activites associated with this
#existing exercise, but if it's a nontrivial overwrite, should we?
exercise.file = file_content
exercise.save()
exercise_exists = True
#If exercise already in video, don't need to create new videoToEx, just update video_time
#If exercise already in video but deleted, undelete
#Otherwise create new videoToEx
queryVideoToEx = VideoToExercise.objects.filter(video=video, exercise=exercise, mode='draft').order_by('-id')
if queryVideoToEx.exists():
existingVideoToEx = queryVideoToEx[0]
if existingVideoToEx.is_deleted == 1:
existingVideoToEx.is_deleted = 0
existingVideoToEx.video_time = video_time
existingVideoToEx.save()
else:
existingVideoToEx.video_time = video_time
existingVideoToEx.save()
else:
videoToEx = VideoToExercise(video=video, exercise=exercise, video_time=video_time, is_deleted=0, mode='draft')
videoToEx.save()
break
if not exercise_exists:
exercise = Exercise()
exercise.handle = request.POST['course_prefix'] + '--' + request.POST['course_suffix']
exercise.fileName = file_name
exercise.file.save(file_name, file_content)
exercise.save()
videoToEx = VideoToExercise(video=video, exercise=exercise, video_time=video_time, is_deleted=0, mode='draft')
videoToEx.save()
return HttpResponseRedirect(reverse('courses.videos.views.manage_exercises', args=(request.POST['course_prefix'], request.POST['course_suffix'], video.slug,)))
#If form was not submitted then the form should be displayed or if there were errors the page needs to be rendered again
data['manage_form'] = manage_form
data['additional_form'] = additional_form
data['reorder_form'] = reorder_form
data['course_prefix'] = course_prefix
data['course_suffix'] = course_suffix
data['video'] = video
data['videoToExs'] = videoToExs
data['exercise_attempted'] = exercise_attempted
data['exercises'] = exercises
data['exercise_attempted'] = exercise_attempted
return render_to_response('videos/manage_exercises.html', data, context_instance=RequestContext(request))
示例6: manage_exercises
# 需要导入模块: from c2g.models import Exercise [as 别名]
# 或者: from c2g.models.Exercise import save [as 别名]
def manage_exercises(request, course_prefix, course_suffix, video_slug):
# Get all necessary information about the problemset
try:
common_page_data = get_common_page_data(request, course_prefix, course_suffix)
except:
raise Http404
data = {"common_page_data": common_page_data}
manage_form = ManageExercisesForm(initial={"course": common_page_data["course"].id})
try:
video = Video.objects.getByCourse(common_page_data["course"]).get(slug=video_slug)
except Video.DoesNotExist:
raise Http404
videoToExs = VideoToExercise.objects.filter(
video__course=common_page_data["course"], is_deleted=False, video__slug=video_slug
).order_by("video_time")
used_exercises = []
exercise_attempted = False
if len(ProblemActivity.objects.filter(video_to_exercise__video=video.image)) > 0:
exercise_attempted = True
# Get the list of exercises currently in this problem set
for videoToEx in videoToExs:
used_exercises.append(videoToEx.exercise.id)
# Get all the exercises in the course but not in this problem set to list in add from existing
# Q objects allow queryset objects to be ORed together
exercises = (
Exercise.objects.all()
.filter(Q(problemSet__course=common_page_data["course"]) | Q(video__course=common_page_data["course"]))
.exclude(id__in=used_exercises)
.distinct()
)
additional_form = AdditionalExercisesForm(
initial={"course": common_page_data["course"].id}, used_exercises=exercises
)
reorder_form = ReorderExercisesForm(current_exercises=videoToExs)
# Form processing action if form was submitted
if request.method == "POST":
manage_form = ManageExercisesForm(request.POST, request.FILES)
additional_form = AdditionalExercisesForm(request.POST, used_exercises=exercises)
if manage_form.is_valid():
# don't catch video DoesNotExist here because we want some tangible error to happen if
# the video id changes in form submission, like emailing us
video = Video.objects.get(id=request.POST["video_id"])
file_content = request.FILES["file"]
file_name = file_content.name
exercise = Exercise()
exercise.handle = request.POST["course_prefix"] + "--" + request.POST["course_suffix"]
exercise.fileName = file_name
exercise.file.save(file_name, file_content)
exercise.save()
video_time = request.POST["video_time"]
videoToEx = VideoToExercise(
video=video, exercise=exercise, video_time=video_time, is_deleted=0, mode="draft"
)
videoToEx.save()
return HttpResponseRedirect(
reverse(
"courses.videos.views.manage_exercises",
args=(request.POST["course_prefix"], request.POST["course_suffix"], video.slug),
)
)
# If form was not submitted then the form should be displayed or if there were errors the page needs to be rendered again
data["manage_form"] = manage_form
data["additional_form"] = additional_form
data["reorder_form"] = reorder_form
data["course_prefix"] = course_prefix
data["course_suffix"] = course_suffix
data["video"] = video
data["videoToExs"] = videoToExs
data["exercise_attempted"] = exercise_attempted
data["exercises"] = exercises
data["exercise_attempted"] = exercise_attempted
return render_to_response("videos/manage_exercises.html", data, context_instance=RequestContext(request))
示例7: manage_exercises
# 需要导入模块: from c2g.models import Exercise [as 别名]
# 或者: from c2g.models.Exercise import save [as 别名]
def manage_exercises(request, course_prefix, course_suffix, pset_slug):
#Get all necessary information about the problemset
common_page_data = request.common_page_data
data = {'common_page_data': common_page_data}
form = ManageExercisesForm(initial={'course':common_page_data['course'].id})
pset = ProblemSet.objects.getByCourse(common_page_data['course']).get(slug=pset_slug)
psetToExs = ProblemSetToExercise.objects.getByProblemset(pset).select_related('exercise', 'problemSet')
used_exercises = []
problemset_taken = False
if ProblemActivity.objects.filter(problemset_to_exercise__problemSet=pset.image).exists():
problemset_taken = True
#Get the list of exercises currently in this problem set
for psetToEx in psetToExs:
used_exercises.append(psetToEx.exercise.id)
#Get all the exercises in the course but not in this problem set to list in add from existing
#Q objects allow queryset filters to be ORed together
exercises = Exercise.objects.all().filter(Q(problemSet__course=common_page_data['course'])|Q(video__course=common_page_data['course'])).exclude(id__in=used_exercises).distinct()
#Form processing action if form was submitted
if request.method == 'POST':
form = ManageExercisesForm(request.POST, request.FILES)
if form.is_valid():
pset = ProblemSet.objects.get(id=request.POST['pset_id'])
file_content = request.FILES['file']
file_name = file_content.name
exercises = Exercise.objects.filter(handle=course_prefix+"--"+course_suffix,is_deleted=0)
exercise_exists = False
for exercise in exercises:
if exercise.fileName == file_name:
#We don't wipe out all problem activites associated with this
#existing exercise, but if it's a nontrivial overwrite, should we?
exercise.file = file_content
exercise.save()
exercise_exists = True
#If exercise already in pset, don't need to create new psetToEx
#If exercise already in pset but deleted, undelete
#Otherwise create new psetToEx
queryPsetToEx = ProblemSetToExercise.objects.filter(problemSet=pset, exercise=exercise, mode='draft').order_by('-id')
if queryPsetToEx.exists():
existingPsetToEx = queryPsetToEx[0]
if existingPsetToEx.is_deleted == 1:
existingPsetToEx.is_deleted = 0
existingPsetToEx.number = ProblemSetToExercise.objects.getByProblemset(pset).count()
existingPsetToEx.save()
else:
index = ProblemSetToExercise.objects.getByProblemset(pset).count()
psetToEx = ProblemSetToExercise(problemSet=pset, exercise=exercise, number=index, is_deleted=0, mode='draft')
psetToEx.save()
break
if not exercise_exists:
exercise = Exercise()
exercise.handle = request.POST['course_prefix'] + '--' + request.POST['course_suffix']
exercise.fileName = file_name
exercise.file.save(file_name, file_content)
exercise.save()
index = ProblemSetToExercise.objects.getByProblemset(pset).count()
psetToEx = ProblemSetToExercise(problemSet=pset, exercise=exercise, number=index, is_deleted=0, mode='draft')
psetToEx.save()
return HttpResponseRedirect(reverse('problemsets.views.manage_exercises', args=(request.POST['course_prefix'], request.POST['course_suffix'], pset.slug,)))
#If form was not submitted then the form should be displayed or if there were errors the page needs to be rendered again
data['form'] = form
data['course_prefix'] = course_prefix
data['course_suffix'] = course_suffix
data['pset'] = pset
data['psetToExs'] = psetToExs
data['problemset_taken'] = problemset_taken
data['exercises'] = exercises
return render_to_response('problemsets/manage_exercises.html', data, context_instance=RequestContext(request))