Python django版本1.8';外键&x27;对象没有属性

Python django版本1.8';外键&x27;对象没有属性,python,django,Python,Django,在我的models.py中,我有3个班 计划 发现 查找类型 实体之间的关系: 项目可以有0到N个查找。每个查找都有一个查找类型 class Project(models.Model): completed_date = models.DateField(blank=True, null=True) .. and some other attributes class RA_Finding_type(models.Model): finding_title = models.CharField

在我的models.py中,我有3个班

计划 发现 查找类型

实体之间的关系:

项目可以有0到N个查找。每个查找都有一个查找类型

class Project(models.Model):
completed_date = models.DateField(blank=True, null=True)
.. and some other attributes

class RA_Finding_type(models.Model):
finding_title = models.CharField(max_length=40)
finding_desc = models.TextField()
remediation_desc = models.TextField()
trc_control_number = models.TextField()
display = models.BooleanField(blank=True)

class RA_Finding(models.Model):
project = models.ForeignKey(Project)
if (not project.completed_date):      # Error here.
   finding_type = models.ForeignKey(RA_Finding_type, limit_choices_to={'display': True},verbose_name='Weakness Type')
else:
   finding_type = models.ForeignKey(RA_Finding_type, limit_choices_to={'display': False},verbose_name='Weakness Type')
。。。其他属性

在admin.py中

class ProjectAdmin(admin.ModelAdmin):
 form = ProjectAdminForm  # For user sort...

 readonly_fields = ('id', ... others)

 inlines = [
            FindingInline,.. other inlines

           ]

class FindingInline(admin.StackedInline):
 model = RA_Finding
 def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
     field = super(FindingInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
     if db_field.name == 'project':
         if request._obj_ is not None:
             field.queryset = field.queryset.filter(id__exact = request._obj_.pk)
         else:
             field.queryset = field.queryset.none()
     return field

 extra = 1

 fieldsets = (
     (None, {
        'fields': ('finding_type',
                  ... other fields
                  )
     })),

我想根据完成日期填充finding_type属性。这是遗留数据的主要功能。要求是-对于具有完成日期的项目,显示所有查找类型,否则仅显示显示设置为true的查找类型。当我尝试这样做时,我得到一个错误-'ForeignKey'对象没有属性。有没有办法在Django实现这一点?感谢所有帮助。

在保存模型时尝试这样做:

    def save(self, *args, **kwargs):
        if (not self.completed_date):
            self.finding...
        else:
            self.finding...

        super(Project, self).save(*args, **kwargs)

您是否正在尝试根据
完成日期设置
查找类型
值?或者你想做什么,比如在管理面板中显示它,等等?我只想根据完成日期设置查找类型值。在admin.py中,我有FindingInline(admin.stackedLine)类:model=RA_Finding fieldset=((无,{'fields':('Finding_type',('risk_id','discovery_date',)和其他。