查询表单的两个表

时间:2016-01-10 12:43:19

标签: django django-forms django-views

我有两种模式:

class Student(models.Model):

    student_id = models.BigIntegerField(primary_key=True)
    student_lastname = models.CharField(max_length=200)
    student_firstname = models.CharField(max_length=200)
    student_courseid = models.ForeignKey(Course)

class Course(models.Model):
    course_location = models.CharField(max_length=200)
    course_begin = models.DateField(blank=True)
    course_end = models.DateField(blank=True)

我有一个表格,显示每个学生的信息。通过网址选择学生。

urlpatterns = [
        # ex: /00116777/detail/
    url(r'^(?P<studentid>[0-9]+)/detail/$', StudentDetailView.as_view(), name='detail'),

]

在这个表单中我想添加course_location但我无法弄清楚如何查询两者以便我可以在模板中使用它

<div class="col-md-3 col-lg-2">
                <p class="student-detail-data">{{ course.course_location }}</p>
</div>

这是我到目前为止的观点:

class StudentDetailView(DetailView):
    model = Student
    template_name = "student/detail.html"
    slug_field = 'student_id'
    slug_url_kwarg = 'studentid'

    def get_context_data(self, **kwargs):
        context = super(StudentDetailView, self).get_context_data(**kwargs)
        data = self.kwargs['studentid']
        context['object'] = Student.objects.filter(student_id=data)
        return context

任何帮助或建议将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

您可以通过外键list_entry

在模板中进行操作

并非创建{{ student.student_courseid.course_location }},Django会自动添加student_id
我不知道你想要什么样的逻辑,但我认为对于课程和学生,你需要创建pk

答案 1 :(得分:0)

点击特定学生时,必须显示相关信息(课程详情)

所以我猜,这会奏效。

{{student.student_courseid.course_loation}} in your html page.

希望这应该有效,因为默认情况下。