如何直接在Django ORM中访问原始的ForeignKey值并在search_fields中使用它?

时间:2018-03-09 09:37:49

标签: python django django-models django-admin django-queryset

我们说我有这些模型:

class First(models.Model):
    id = models.SlugField(primary_key=True)

class Second(models.Model):
    foo = models.ForeignKey('First')

从技术上讲,这意味着Second.fooSlugField,指向First模型的主键。

问题是如何在不引用和使用foo模型的情况下访问First中的原始值?

加分问题:如何在不指向子模型字段的情况下在Django Admin面板中搜索此字段?

那怎么做这样的事呢?

@admin.register(Second)
class SecondAdmin(admin.ModelAdmin):
    search_fields = ['foo_id',]

而不是这个?

@admin.register(Second)
class SecondAdmin(admin.ModelAdmin):
    search_fields = ['foo__id',]

1 个答案:

答案 0 :(得分:0)

主要问题的答案是在被引用的变量的末尾添加 _id

Second.objects.filter(foo_id='something')