python - 如何显示外键属性 django 管理字段?
问题描述
这个问题与其他问题相似,但实际上是不同的!所以,我有 3 个模型,例如(我删除了一些不必要的东西以缩短代码):
class Category(models.Model):
category_title = models.CharField(max_length=200)
category_content = models.TextField()
category_slug = models.CharField(max_length=200)
def __str__(self):
return self.category_title
class Classes(models.Model):
classes_title = models.CharField(max_length=200)
classes_content = models.TextField()
classes_category = models.ForeignKey(Category, on_delete=models.SET_DEFAULT)
def __str__(self):
return self.classes_title
class Subjects(models.Model):
subject_title = models.CharField(max_length=200)
subject_content = models.TextField()
subject_class = models.ForeignKey(Classes, on_delete=models.SET_DEFAULT)
def __str__(self):
return self.subject_title
所以让我举个例子。我可以有 2 个类别,在这些类别中我可以有“同名”类。让我们想想数学是两个类别的课程。当我想在数学中添加一个新主题时,我在管理页面中看到了 2 个同名的数学。所以我想知道哪个属于管理页面中的哪个类别。所以我可以将我的主题添加到正确的课程中。
class SubjectAdmin(admin.ModelAdmin):
fields = ('subject_title', 'subject_content', 'subject_class',)
所以在这张图片中(Subjects = Konular)我添加了一个新的主题。我将有一个 Class 的外键。但是,对于来自不同类别的类,我有相同的名称。那么在这个下拉列表中,我如何知道哪个类属于哪个类别?
解决方案
试试这个...
class KonularAdmin(admin.ModelAdmin):
fields = ('subject_title', 'subject_content', 'subject_class', 'get_classes_category_title')
def get_classes_category_title(self, obj):
subject_object = Subjects.objects.get(id=obj.subject_class)
return str(subject_object.classes_category.category_title)
- 它返回类别标题名称
推荐阅读
- python - python - 如何通过python中选择列右侧的每一行中的nans数对数据框进行子集化?
- javascript - angular-highcharts 和 highcharts-angular 有什么区别?
- python - Colab:Plotly 中的 Python 和 Sankey
- ios - 当结构作为参数传递时会发生什么?
- python - python-按字母顺序/类型/索引对列表进行排序
- c - C:在执行任何操作之前打印出多个线程的 ID?
- tableau-api - 实验的相对提升 - Tableau
- ios - 使用苹果按钮登录不触发目标功能
- sql - SQL 查询中的虚拟列
- node.js - 如何使用猫鼬推送对象数组