0

我有以下型号:

    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()

当我这样做时,我得到了错误:

“公司”对象没有属性“save_m2m”

当父“实体”具有此值而子“公司”应该有权访问它时,这怎么可能?

4

1 回答 1

1

save_m2m必须在表单上调用,而不是在模型实例上调用(请参阅本主题)。

于 2017-03-09T17:46:35.563 回答