2017-04-07 14 views
0

こんにちは私はチュートリアルでDjango投票アプリケーションを作成しました。私はログインするユーザーが選択肢に投票したときに、選択セクションがdbに格納されるように追加することを検討しています。 Models.pyDjango Polls Tutorial with Voterid with choice

class Choice(models.Model): 
question = models.ForeignKey(Question, on_delete=models.CASCADE) 
choice_text = models.CharField(max_length=400) 
vote = models.IntegerField(default=0) 
points = models.IntegerField(default=1) 
def __str__(self): 
    return self.choice_text 


class Voter(models.Model): 
user = models.ForeignKey(User) 
selections = models.CharField('question.choice', max_length=600) 

マイViews.pyとVote.view:

class VoteView(generic.View): 
def dispatch(self, request, *args, **kwargs): 
    # Getting current question 
    question = get_object_or_404(Question,  pk=kwargs.get('question_id')) 

    try: 
     selected_choice = question.choice_set.get(pk=request.POST['choice']) 
    except (KeyError, Choice.DoesNotExist): 
     # Display flash message 
     messages.error(request, "You didn't select a choice.") 

     # Redirect to the current question voting form again 
     return HttpResponseRedirect(reverse('questionaire:detail', args=(kwargs.get('question_id'),))) 
    else: 
     selected_choice.vote += 1 
     selected_choice.save() 
     v = Voter(user=request.user, Question=q) 
     v.save() 

だから私は、後の処理のために保存されるデータベースにユーザーごとに選択された選択肢を、保存しようとしていますし、分析。

+0

Voterからお使いのモデルの名前を変更を検討? –

答えて

0

QuestionChoiceVoterというモデルにForeignKeyフィールドとして追加できます。

おそらくすでにQuestion FKがVoterにあります。

また、あなたは疑問を持っていますかVote

+0

ありがとうございました! –