저는 장고를 처음 사용하여 기본적인 문제로 어려움을 겪었지만 온라인에서 해결책을 찾을 수 없습니다.장고보기 및 외래 키가있는 기본 논리
class Suggestion(models.Model):
author = models.ForeignKey('auth.User')
title = models.CharField(max_length=200)
description = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.title
class Vote(models.Model):
suggestion = models.ForeignKey(Suggestion)
voter = models.ForeignKey('auth.User')
vote_count = models.IntegerField(default=1)
내가 투표 한 사용자를 캡처, 주어진 Suggestion
에 Vote
를 추가 뷰를 만들려고 해요 :
나는이 모델이있다. 나는 폼이나 정규 함수로 이것을하는 것으로 보이는 것을 보았으므로 여기서 가장 좋은 방법이 무엇인지 모르십니까?
편집은 여기 (작동하지 않는) 내 시도이다. 도움이나 조언을 부탁드립니다.
#forms.py
class VoteForm(forms.ModelForm):
class Meta:
model = Vote
fields =()
#models.py
class Vote(models.Model):
suggestion = models.ForeignKey(Suggestion)
voter = models.ForeignKey('auth.User')
vote_count = models.BooleanField()
#views.py
def add_vote(request, pk):
if request.method == 'POST':
form = VoteForm(request.POST)
suggestion = get_object_or_404(Suggestion, pk=pk)
if form.is_valid():
vote = form.save(commit=False)
vote.voter = request.user
vote.vote_count = True
vote.save()
return render(request, 'suggestion/suggestion_detail.html', {'suggestion': suggestion})
#vote_form.html
<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Vote</button>
</form>
이 너무 광범위하다. 시도한 코드를 보여주고 문제를 언급해야합니다. –
에 대한 'vote_count' 필드는 무엇입니까? 한 사용자가 동일한 제안에 여러 번 투표 할 수 있습니까? – schwobaseggl
자세한 내용으로 코드를 업데이트했습니다. – robtus88