Я хочу увеличить кандидат заработать значение, если он получил право голоса. Поэтому я пишу эту часть в result_view, но это не работает.В представлении Django, как я могу изменить значение члена класса?
Вот мои взгляды.
from django.shortcuts import render_to_response
from election.models import *
# /candidate/ view
def candidate_view(request):
if request.method == 'GET':
c = Candidate.objects.all()
return render_to_response('candidate.html', {'candidates': c})
# /candidate/result/ view
def result_view(request):
if request.method == 'POST':
c = Candidate.objects.all()
ec = Candidate.objects.filter(num=request.POST.get('choice'))
ec[0].earn += 1
ec[0].name = 'semi kwon'
ec[0].save()
#return render_to_response('result.html', {'candidates': ec})
return render_to_response('result.html', {'candidates': c})
И вот моя модель.
from django.db import models
class Candidate(models.Model):
num = models.IntegerField()
name = models.TextField()
major = models.TextField()
grade = models.IntegerField()
earn = models.IntegerField(default = 0, blank=True, editable=True)
def __unicode__(self):
return "%d : %s"%(self.num, self.name,)
Как я могу решить эту проблему?
Добро пожаловать в StackOverflow! Я редактировал отчет вашего примера кода для лучшей читаемости. Обращаем внимание, что блок кода должен начинаться с 4-х пробелов. Он также будет полезен, если вы можете предоставить фрагмент вашего шаблона. – cezar
У вас также есть форма (что-то вроде '' CandidateForm (ModelForm) '')? В вашем '' result_view'' вы обрабатываете ввод пользователя, который должен быть выполнен в форме, но для этого вы не указали требуемый код. – cezar
@cezar Спасибо за теплый прием:> !! С этого момента я буду иметь в виду. –