전국민 논란 종결 서비스 001 | 설계 구상

Yunny.Log ·2022년 2월 1일
0

ToyProject

목록 보기
2/13
post-thumbnail

장고 투표 모델 참조 블로그1

장고 투표 모델 참조 블로그2

1 ) 사용자

  • 영구 쿠키 (쿠키 없으면 발행, 있으면 ㅇ)
id = +1
isvoted = (디폴트 : 0) (투표완료 : 1)

=>투표 여부 t/f로 return

1) 현재 투표 참여한 인원 (쿠키 id 값으로 데려오기)
2) 투표 완료하면 isVoted = true
=> 재투표 , 중복투표 불가능 -> 재투표 시도하면 alert 띄우고 홈으로 돌아가게 하기
=> 투표하러 가기 hide로 변경

2) 투표 = 모델

민초 - 반민초
1) 민초 선택 :
2) 반민초 선택 :

1) 모델 필드

  • mint : int
  • mintno : int

  • shucream : int
  • pot : int

2 ) 투표 항목들에 (score = 첫항목 : 0, 두번째 : 1 )

-> if model.mint > model.mintno &&

3 ) 투표

If score 범위 따라서 return option 1 / 2/ 3/ 4

  • 프론트는 option 값 따라서 보여줄 html 페이지 띄우기

4 )

from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length=200)

    def __str__(self):
        return self.question_text
#question id 각각 (민초1, 피자2, 붕어빵3)
class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0) 

    def __str__(self):
        return self.choice_text

===> 폼은 하나의 모델에서만 되잖아
=> 하나의 Question 모델당 - 2개의 Choice 모델 (1:N)
==> CHOICE 모델을 여러개 어때

  • CHOICE1은 민초, 반민초
    ====> 그리고 민초,반민초 투표 결과는 GET_OBJECTS.ALL() 로 리스트에 담고
    ====> LIST[0] 과 LIST[1]의 vote 필드 수 비교, 더 많은 쪽이 주류
  • CHOICE2는 팥, 슈크림

<form action ="{% url 'polls:vote' question.id %}" method="post">
    {% csrf_token %}
  
  
    {% for choice in question.choice1_set.all %}
        <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}"/>
        <label for="choice{{ forloop.counter }}"> {{ choice.choice_text }}</label> <br/>
    {% endfor %}
  
      {% for choice in question.choice2_set.all %}
        <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}"/>
        <label for="choice{{ forloop.counter }}"> {{ choice.choice_text }}</label> <br/>
    {% endfor %}
  
  
  
    <input type="submit" value="Vote"/>
</form>

0개의 댓글