![](/img/trans.png)
[英]Join Two Different Models, One 'unmanaged', in Django Without a Foreignkey Relation
[英]Two models in one Django DetailView and filtering by relation betwen them
我有個問題。 在我的DetailView
我想放置來自兩個模型的數據。 此外,我想過濾它們,在我的scenario-detail
上只有與特定場景相關的評論,由外鍵->場景相關。
我的意見views.py
:
class ScenarioDetailView(LoginRequiredMixin, DetailView):
model = Scenario
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['comments'] = Comment.objects.all()
return context
在scenario_detail.html
我有一個簡單的{{ comments }}
我想在views.py
過濾我的評論對象,例如: Comment.objects.get(commentScenario=Scenario.id)
但它根本不起作用。
我的models.py
:
class Scenario(models.Model):
scenarioTitle = models.CharField(max_length=256)
scenarioArea = models.ForeignKey(ScenarioArea, on_delete=models.CASCADE)
scenarioAuthor = models.ForeignKey(User, on_delete=models.CASCADE)
scenarioDate = models.DateTimeField(default=timezone.now)
scenarioDescription = models.TextField()
def __str__(self):
return self.scenarioTitle
def get_absolute_url(self):
return reverse('scenario-detail', kwargs={'pk': self.pk})
class Comment(models.Model):
commentText = models.CharField(max_length=256)
commentScenario = models.ForeignKey(Scenario, on_delete=models.CASCADE)
commentAuthor = models.ForeignKey(User, on_delete=models.CASCADE)
commentDate = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.commentText
和urls.py
:
path('scenario/<int:pk>/', ScenarioDetailView.as_view(), name='scenario-detail'),
有人可以幫助我嗎?
您不需要向模板發送任何額外的上下文來顯示相關評論; 由於您已經對具有后向關系的Scenario
進行了相關評論。
因此,您可以簡單地在模板中使用Scenario.comment_set.all
來訪問它們。
舉個例子:
{% for comment in object.comment_set.all %}
{{ comment }}
{% endfor %}
嘗試這個
class ScenarioDetailView(LoginRequiredMixin, DetailView):
model = Scenario
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['comments'] = Comment.objects.filter(commentScenario=self.object)
return context
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.