如何解决从 url 中获取一个值以将其设置为表单的值?
我正在制作一个投票应用程序,您有 2 个选项是或否(布尔值),我不仅要保存大量选票,还要保存投票的人,因此我决定制作一个连接用户模型的“枢轴”模型和 Poll 模型如下:
models.py
# Vote choices
BOOL_CHOICES = ((True,'Yes'),(False,'No'))
class PollVotes(models.Model):
user = models.ForeignKey(usermodels.User,on_delete=models.CASCADE,blank=True)
Vote = models.BooleanField(choices=BOOL_CHOICES)
poll = models.ForeignKey(Poll,on_delete=models.CASCADE)
以这种方式使用 form.instance.user = self.request.user
设置用户值很容易:(views.py)
class PollVote(CreateView):
model = PollVotes
form_class = VoteForm
template_name = 'poll_Vote.html'
success_url = reverse_lazy('polls')
def form_valid(self,form):
form.instance.user = self.request.user
form.instance.poll = ?????
return super(PollVote,self).form_valid(form)
我正在考虑从 URL 获取民意调查 pk,但不知道该怎么做。 现在 URL 以这种方式获得一个 int 值:
path('poll/Vote/<int:poll>/',PollVote.as_view(),name='poll-Vote'),
如何将 int:poll 与某个 Poll 的 PK 联系起来?然后将 form.instance.poll 设置为带有 URL PK 的 Poll ?也许这是错误的方法,这只是我认为最简单的方法。
forms.py
class VoteForm(forms.ModelForm):
class Meta:
model = PollVotes
fields = ['Vote']
widgets = {
'Vote': forms.RadioSelect
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。