【问题标题】:I want to query to get the details from the command line我想查询以从命令行获取详细信息
【发布时间】:2020-08-24 02:38:48
【问题描述】:

在 Models.py 文件中(我有这个代码库)

class Person(models.Model):
    sex_choices = (
        ('Male', 'Male'),
        ('Female', 'Female')
    )
    martial_choices = (
        ('Single', 'Single'),
        ('Married', 'Married'),
        ('Divorce', 'Divorce'),
        ('Widowed', 'Widowed')
    )

    name = models.CharField(max_length=200)
    sex = models.CharField(choices=sex_choices, max_length=50)
    martial_status = models.CharField(choices=martial_choices, max_length=50)
    age = models.IntegerField()


    def __str__(self):
        return self.name


class DetailsOfEducationQualification(models.Model):
    type_choice = (
        ("Government", "Government"),
        ("Private", "Private"),
        ("Anganwadi Center", "Anganwadi Center"),
    )
    education_proximity_choice = (
        ("0-5", '0-5km'),
        ('5-10', '5-10km'),
        ('10+', 'Above 10km'),
        ('Outside the state', 'Outside the state'),
    )

    person = models.ForeignKey(Person, on_delete=models.CASCADE)
    course_class = models.CharField(max_length=50, blank=True)
    type_of_education_sector = models.CharField(choices=type_choice, max_length=50, blank=True)
    education_facility_proximity = models.CharField(choices=education_proximity_choice, max_length=50, blank=True)

在 Admin.py 文件中(我有这个)

from .models import (
    Person, DetailsOfEducationQualification
)

class DetailsOfEducationQualificationInline(admin.TabularInline):
    model = DetailsOfEducationQualification
    extra = 0

    class PersonAdmin(admin.ModelAdmin):
        fieldsets = [
            (
                'Personal Information', {
                'fields':[
                    'name', 'sex', 'age', 'martial_status'
                ]
            }
        ),
    ]
    inlines = [
        DetailsOfEducationQualificationInline
    ]

在查询外壳中,我想获取人“course_class”,因为 DetailsOfEducationQualification 模型与人相关:

喜欢他的查询:

person = Person.objects.get(id=1)
person.course_class

这段代码出错,说人没有属性... 如何从 Person 模型访问 DetailsOfEducationQualification 日期?

【问题讨论】:

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


    【解决方案1】:

    course_classDetailsOfEducationQualification类的属性,而不是Person类的属性,

    因此您将无法从人员对象访问它。

    detail = DetailsOfEducationQualification.objects.get(id=1)
    detail.course_class
    

    上述代码将返回 DetailsOfEducationQualificationcourse_class,id 为 1。

    如果您想从 Person 对象访问 course_class

    那么你可以使用

    person = Person.objects.get(id=1)
    person.detailsofeducationqualification_set.first().course_class
    

    person.detailsofeducationqualification_set 是所有 DetailsOfEducationQualification 对象的查询集,其中 person id 为 1 作为外键。

    而且,person.detailsofeducationqualification_set.first() 将是查询集的第一个元素。

    希望对你有帮助。

    【讨论】:

    • 你能再详细点吗,我不能从这个** person.detailsofeducationqualification_set.first().course_class**... shell 还是在 models.py 文件中?谢谢!!!
    猜你喜欢
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多