2

我正在通过一个简单的应用程序学习 Django,该应用程序使用 2 个对象 - 一个用户 Profile 对象和一个 Groups 对象。一个用户可以是多个组的一部分,一个组可以有多个用户。我定义了这两个对象之间的通用关系。

模型.py

class Profile(models.Model):
    groups = generic.GenericRelation('Groups', null=True, blank=True, 
                     content_type_field='content_type', 
                     object_id_field='object_id', 
                     related_name='profile_groups')

    def deleteGroup(self, group_name):
        group_id = Groups.find_or_create(self, group_name, find_only=True)
        self.assertIsNotNone(group_id)
        group_id.delete()


class Groups(models.Model):
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey('content_type', 'object_id')
    members = generic.GenericRelation(Profile, null=True, blank=True, 
                      related_name='group_members')

删除组时出现错误。我了解该错误与将 args 传递给 GenericForeignKey 或 GenericRelation 的 filter() 有关,但较早的线程在 get_or_create() 而不是 delete() 的上下文中提到了这一点

任何帮助深表感谢。

错误:

"models.py", in deleteGroup
    group_id.delete()
...
File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 155, in   filter
    return self.get_query_set().filter(*args, **kwargs)
...
FieldError: Cannot resolve keyword u'object_id' into field. Choices are: *<Profile objects global variable>*
4

0 回答 0