如何在模板中显示 ManyToMany 字段
How to display a ManyToMany fields in the template
我想知道如何检索我的模板的 ManyToMany 字段...
例如,在我的模型中,我想检索与每个问题对应的页面,并在模板中 post 它...
我的 class 页面 ("visit 1 visit 2 visit 3, 4 .. visit") 中有 4 个值
我在我的数据库中将每个问题与 "visit"
相关联
我希望我现在可以看到我的模板中任何问题的访问情况。
我会分享我的模型:
class Page(models.Model):
title = models.CharField(max_length=30)
def __str__(self):
return self.title
class Question(models.Model):
label = models.CharField(max_length=30)
page = models.ManyToManyField(Page)
def __str__(self):
return self.label
class Reply(models.Model):
question = models.ForeignKey(Question)
user = models.ForeignKey(Personne)
answer = models.CharField(max_length=30)
creationDate = models.DateTimeField(default=datetime.datetime(2016, 1, 20, 15, 4, 21, 467165))
def __str__(self):
return str(self.answer)
还有我的模板:
{% for reply in replies %}<br>
<br> {{ reply.user }}
{{ reply.question }} -
{{ reply.answer }}
(dans la :{% for page in questions.page %} {{ page }}) {% endfor %} #this is this line who doesn't work
{% endfor %}
如何调用给定问题的模板页面?
EDIT :
def reply(request):
replies = Reply.objects.all()
questions = Question.objects.all()
logged_user = get_logged_user_from_request(request)
pages = Page.objects.all()
form = ReplyBisForm(request.GET)
personnes = Personne.objects.all()
if logged_user:
if len(request.GET) > 0:
form = ReplyBisForm(request.GET)
if form.is_valid():
form.save(commit=True)
return HttpResponseRedirect('/reply')
else:
return render_to_response('polls/reply.html', {'personnes': personnes, 'replies': replies, 'questions': questions,'pages':pages, 'form': form})
else:
form = ReplyBisForm()
return render_to_response('polls/reply.html', {'personnes':personnes, 'replies': replies, 'questions': questions, 'pages':pages, 'form': form})
else:
return HttpResponseRedirect('/login')
由于 ManyToMany
字段转换为 RelatedManager
for every model instance, you should specify a subset of your related objects, or just go with all()
:
(dans la :{% for page in reply.question.page.all %} {{ page }}) {% endfor %}
我想知道如何检索我的模板的 ManyToMany 字段... 例如,在我的模型中,我想检索与每个问题对应的页面,并在模板中 post 它... 我的 class 页面 ("visit 1 visit 2 visit 3, 4 .. visit") 中有 4 个值 我在我的数据库中将每个问题与 "visit"
相关联我希望我现在可以看到我的模板中任何问题的访问情况。
我会分享我的模型:
class Page(models.Model):
title = models.CharField(max_length=30)
def __str__(self):
return self.title
class Question(models.Model):
label = models.CharField(max_length=30)
page = models.ManyToManyField(Page)
def __str__(self):
return self.label
class Reply(models.Model):
question = models.ForeignKey(Question)
user = models.ForeignKey(Personne)
answer = models.CharField(max_length=30)
creationDate = models.DateTimeField(default=datetime.datetime(2016, 1, 20, 15, 4, 21, 467165))
def __str__(self):
return str(self.answer)
还有我的模板:
{% for reply in replies %}<br>
<br> {{ reply.user }}
{{ reply.question }} -
{{ reply.answer }}
(dans la :{% for page in questions.page %} {{ page }}) {% endfor %} #this is this line who doesn't work
{% endfor %}
如何调用给定问题的模板页面?
EDIT :
def reply(request):
replies = Reply.objects.all()
questions = Question.objects.all()
logged_user = get_logged_user_from_request(request)
pages = Page.objects.all()
form = ReplyBisForm(request.GET)
personnes = Personne.objects.all()
if logged_user:
if len(request.GET) > 0:
form = ReplyBisForm(request.GET)
if form.is_valid():
form.save(commit=True)
return HttpResponseRedirect('/reply')
else:
return render_to_response('polls/reply.html', {'personnes': personnes, 'replies': replies, 'questions': questions,'pages':pages, 'form': form})
else:
form = ReplyBisForm()
return render_to_response('polls/reply.html', {'personnes':personnes, 'replies': replies, 'questions': questions, 'pages':pages, 'form': form})
else:
return HttpResponseRedirect('/login')
由于 ManyToMany
字段转换为 RelatedManager
for every model instance, you should specify a subset of your related objects, or just go with all()
:
(dans la :{% for page in reply.question.page.all %} {{ page }}) {% endfor %}