私はDjangoの初心者ですが、基本的な問題に苦しんでいますが、解決策をオンラインで見つけることはできません。Djangoのビューと外部キーを使用した基本的なロジック
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
を追加するビューを作成しようとしている:
は、私はこれらのモデルを持っています。私はいくつかのフォームや定期的な関数でこれを行うように見えるので、ここで何がベストプラクティスであるか分からない?
EDITは、ここで(動作しない)私の試みです。任意のヘルプ/アドバイスをいただければ幸いです
#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'フィールドとは何ですか? 1人のユーザーが同じ提案に対して複数回投票できますか? – schwobaseggl
私のコードをより詳細に更新しました – robtus88