Django(2.0.1)行SQL查询-将结果放入模板Html*原始查询必须包含主键*
我试图从数据库中获取数据,并在模板中显示结果。但是,不会显示结果。网站上的结果是:“原始查询必须包含主键”。这是我的代码: 这是我在视图中的代码:Django(2.0.1)行SQL查询-将结果放入模板Html*原始查询必须包含主键*,django,templates,rawsql,Django,Templates,Rawsql,我试图从数据库中获取数据,并在模板中显示结果。但是,不会显示结果。网站上的结果是:“原始查询必须包含主键”。这是我的代码: 这是我在视图中的代码: 这是我在模板中的代码(event\u detail\u list.html): 事件表如下所示: 有人知道如何将查询集结果显示到模板中吗?以及为什么不能添加id来选择查询?很好。成功了。谢谢! class EventListView(ListView): context_object_name = "events"
这是我在模板中的代码(event\u detail\u list.html):
事件表如下所示:
有人知道如何将查询集结果显示到模板中吗?以及为什么不能添加
id
来选择查询?很好。成功了。谢谢!
class EventListView(ListView):
context_object_name = "events"
template_name = 'core/event_detail_list.html'
def get_queryset(self):
queryset = Event.objects.raw("""select name, date from classroom_event""")
return queryset
{% extends 'base.html' %}
{% block content %}
<tbody>
{% for event in queryset %}
<tr>
<td class="align-middle">{{ event.name }}</td>
<td class="align-middle">{{ event.date }}</td>
</tr>
{% empty %}
<tr>
<td class="bg-light text-center font-italic" colspan="5">You haven't created any events yet.</td>
</tr>
{% endfor %}
</tbody>
{% endblock %}
class Event(models.Model):
owner_events = models.ForeignKey(User, on_delete=models.CASCADE, related_name='events')
name = models.CharField(max_length=30)
date = models.DateTimeField(default=timezone.now)
def get_absolute_url(self): # defekt
return reverse('event_detail', kwargs={'pk': self.pk})
return self.name
def get_event(self):
name = escape(self.name)
date = escape(self.date)
return "Name: " + str(name) + " Datum: " + str(date)
class User(AbstractUser):
is_student = models.BooleanField(default=False)
is_teacher = models.BooleanField(default=False)
class Teacher(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
interests = models.ManyToManyField(Subject, related_name='interested_teachers')
events = models.ManyToManyField(Event, related_name="teacher_events")
def __str__(self):
return self.user.username
def get_events(self):
return "Name: " + str(self.events.name) + "Datum: "
def get_events_adr(self):
return self.events
def get_interests(self):
return "Interests: " + str(self.interests.name)
class Student(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
quizzes = models.ManyToManyField(Quiz, through='TakenQuiz')
interests = models.ManyToManyField(Subject, related_name='interested_students')
events = models.ManyToManyField(Event, related_name="student_events")
def get_unanswered_questions(self, quiz):
answered_questions = self.quiz_answers \
.filter(answer__question__quiz=quiz) \
.values_list('answer__question__pk', flat=True)
questions = quiz.questions.exclude(pk__in=answered_questions).order_by('text')
return questions
def __str__(self):
return self.user.usernames