Django子继承对象看不到M2M父属性

2024-03-29 06:12:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下型号:

    from django.contrib.sites.models import Site

        class Entity(models.Model):
            name = models.CharField('Name', max_length=64) 
            desc = models.TextField('Description',)
            tags = models.ManyToManyField(Tag,related_name='companies')
            sites = models.ManyToManyField(Site)

    class Company(Entity):  
        founded_date = models.DateField(blank=True, null=True, help_text='Enter in YYYY-MM-DD format.')
        employee_amount = models.IntegerField('Number of Employees',blank=True, null=True)

class Employee(models.Model):  
    user = models.OneToOneField(User)  
    entity = models.ForeignKey('companies.Entity', blank=True, null=True)

我试图保存公司的第一次(添加)和更新(编辑)。你知道吗

在我看来,我是这样做的:

try:
            company = Company.objects.get(employee=get_employee(request.user))
            form = CompanyForm(request.POST, request.FILES, instance=company)
        except:
            form = CompanyForm(request.POST, request.FILES)


        if form.is_valid():
            company  = form.save(commit=False)

            if action == 'add':
                try:
                    entity = Entity.objects.get(name=company.name)
                    company = entity.company
                    employee.entity = entity
                    employee.save()
                except:
                    pass

            company.save()
            employee.entity = company
            employee.save()
            employee.entity.sites.add(current_site)
            company.save_m2m()

当我这样做的时候,我得到了一个错误:

'Company' object has no attribute 'save_m2m'

当父“实体”有这个值而子“公司”应该有权访问它时,这怎么可能呢?你知道吗


Tags: nameformtruemodelsrequestsaveemployeenull