Django获取相关的外键字段混乱

Openrijal

我无法为我遇到的问题提供适当的标题。我将尽我所能解释。

我有2个模型College和Course。大学与课程有很多关系。我也有一个名为College_Specific_Course_Details的模型,该模型具有College和course作为外键,并具有一个称为“ Fee”的额外属性。

我可以从后端添加college,course和college_specific_course_details。在前端,我有一个要求,我必须列出特定学院的所有课程及其费用。这是因为即使课程内容相同,特定的课程在不同的学院也可能会收取不同的费用。

我可以在模板中列出带有college.courses.all的课程,但是在获取特定学院的课程费用时遇到问题。我感到困惑,因为正确的方法是什么?我在一些地方读过,不建议通过模板标记传递参数。我无法找出一种显示方式。

我的模板标签如下所示:

<h3>Courses</h3>
                        {% for course in college.courses.all %}
                          <li>
                             <a href="{{ course.get_absolute_url }}">{{ course.title }} 
                                      {{ something here should pull the fee of this course in this college }}
                             </a>
                          </li>
                        {% endfor %}

我的模型如下:

class College(models.Model):
    title = models.CharField(max_length=200, unique=True, db_index=True)
    slug = models.SlugField(max_length=255, unique=True, db_index=True)
    courses = models.ManyToManyField(Course)
    publish = models.BooleanField(default=True)

class Course(models.Model):
    title = models.CharField(max_length=200, db_index=True)
    slug = models.SlugField(max_length=255, unique=True, db_index=True)
    publish = models.BooleanField(default=False)

class CollegeSpecificCourseDetails(models.Model):
    college =ChainedForeignKey(College)
    course = ChainedForeignKey(Course)
    monthly_fee = models.IntegerField(max_length=10, blank=True, null=True)
凯文·克里斯托弗·亨利

正如@DanielRoseman所说,您确实需要展示您的模型。但这听起来好像让您感到困惑的根源是既有ManyToManyField介于Course之间College,又有单独的College_Specific_Course_Details表。如果我对您的理解正确,那么这些都是多余的。而是College_Specific_Course_Details使用through关键字创建M2M表

它可能看起来像这样:

class Course(models.Model):
    # some fields

class College(models.Model):
    # some fields
    courses = models.ManyToManyField(Course, 
                                     through='CollegeCourse', 
                                     related_name='colleges')

class CollegeCourse(models.Model)
    college = models.ForeignKey(College, related_name='college_courses')
    course = models.ForeignKey(Course, related_name='college_courses')
    fee = models.IntegerField()

然后,您可以像这样进行迭代:

{% for college_course in college.college_courses.all %} 
    {{ college_course.course.id }}
    {{ college_course.fee }}
{% endfor %}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

外键与Django模型中的相关字段冲突

来自分类Dev

通过外键/相关字段对Django查询集进行分组

来自分类Dev

Django:如何通过与外键相关的对象获取对象

来自分类Dev

Django获取OneToMany字段的外键模型类型

来自分类Dev

如何不列出与外键相关的字段

来自分类Dev

通过外键返回与模型相关的字段

来自分类Dev

获取与内联表单相关的外键字段名称

来自分类Dev

如何要求Automapper通过ID字段(不是外键)上的内部联接来获取相关记录?

来自分类Dev

通过Django ModelForm中的外键字段验证多个相关对象

来自分类Dev

外键混乱

来自分类Dev

外键混乱

来自分类Dev

Django多个外键-在详细信息管理页面中显示相关字段以进行添加/编辑

来自分类Dev

Django过滤外键对象中的字段

来自分类Dev

在Django中更新外键字段

来自分类Dev

django管理站点外键字段

来自分类Dev

Django过滤器外键字段

来自分类Dev

Django模型:使用外键中的字段

来自分类Dev

无法在Django中生成外键字段

来自分类Dev

在Django中更新外键字段

来自分类Dev

django中不同模型字段的外键

来自分类Dev

Laravel Eloquent:获取相关表的值而不是外键

来自分类Dev

Django无法级联删除相关的通用外键对象

来自分类Dev

Django:根据相关对象限制外键选择

来自分类Dev

遍历抽象Django模型的所有与外键相关的子代

来自分类Dev

Django:根据相关对象限制外键选择

来自分类Dev

具有外键相关数据的Django表单

来自分类Dev

Django:过滤与外键对象相关的所有操作

来自分类Dev

使用 django-import-export 反向通过外键小部件从字段中获取字段值

来自分类Dev

Django从外键的类获取属性

Related 相关文章

热门标签

归档