当前位置: 首页>>代码示例>>Python>>正文


Python reversion.get_for_object_reference函数代码示例

本文整理汇总了Python中reversion.get_for_object_reference函数的典型用法代码示例。如果您正苦于以下问题:Python get_for_object_reference函数的具体用法?Python get_for_object_reference怎么用?Python get_for_object_reference使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了get_for_object_reference函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: testCanGetForObjectReference

    def testCanGetForObjectReference(self):
        # Can get version for proxy model
        proxy_versions = reversion.get_for_object_reference(ReversionTestModel1Proxy, self.proxy.id)
        self.assertEqual(len(proxy_versions), 2)
        self.assertEqual(proxy_versions[0].field_dict["name"], self.proxy.name)
        self.assertEqual(proxy_versions[1].field_dict["name"], self.concrete.name)

        # Can get the same version for concrete model
        concrete_versions = reversion.get_for_object_reference(ReversionTestModel1, self.concrete.id)
        self.assertEqual(list(concrete_versions), list(proxy_versions))
开发者ID:LukasRychtecky,项目名称:django-reversion,代码行数:10,代码来源:tests.py

示例2: testCanGetForObjectReference

 def testCanGetForObjectReference(self):
     # Test a model with an int pk.
     versions = reversion.get_for_object_reference(ReversionTestModel1, self.test11.pk)
     self.assertEqual(len(versions), 2)
     self.assertEqual(versions[0].field_dict["name"], "model1 instance1 version2")
     self.assertEqual(versions[1].field_dict["name"], "model1 instance1 version1")
     # Test a model with a str pk.
     versions = reversion.get_for_object_reference(ReversionTestModel2, self.test21.pk)
     self.assertEqual(len(versions), 2)
     self.assertEqual(versions[0].field_dict["name"], "model2 instance1 version2")
     self.assertEqual(versions[1].field_dict["name"], "model2 instance1 version1")
开发者ID:larssos,项目名称:django-reversion,代码行数:11,代码来源:tests.py

示例3: add_site_to_revision

def add_site_to_revision(sender, **kwargs):
    revision = kwargs["revision"]
    versions = kwargs["versions"]
    sites = []

    if revision.versionsites.exists():
        # If the sites are already set earlier, don't reset them here
        return

    for ver in versions:
        # Add any sites from the new version
        if "sites" in ver.field_dict:
            sites.extend([int(s) for s in ver.field_dict["sites"]])
        elif "site" in ver.field_dict:
            sites.append(int(ver.field_dict["site"]))
        # Add any sites from the previous version, so we can see that it has
        # moved
        try:
            available_versions = reversion.get_for_object_reference(ver.content_type.model_class(), ver.object_id)
            prev_ver = available_versions.exclude(id=ver.id).order_by("-id")[0]
            if "sites" in prev_ver.field_dict:
                sites.extend([int(s) for s in prev_ver.field_dict["sites"]])
            elif "site" in prev_ver.field_dict:
                sites.append(int(prev_ver.field_dict["site"]))
        except (IndexError, SerializerDoesNotExist):
            pass

    for site_id in set(s.id for s in Site.objects.filter(id__in=sites)):
        site = Site.objects.get(pk=site_id)
        # Add meta data didn't work, so do it manually
        vsite = VersionSite(revision=revision, site=site)
        vsite.save()
开发者ID:AGoodId,项目名称:begood-sites,代码行数:32,代码来源:models.py

示例4: get_queryset

    def get_queryset(self, **kwargs):
        thisModel = self.kwargs['model']

        # thisObject = get_object_or_404(thisModel, pk=self.kwargs['pk'])
        versions = reversion.get_for_object_reference(thisModel, self.kwargs['pk'])

        return versions
开发者ID:nottinghamtec,项目名称:PyRIGS,代码行数:7,代码来源:versioning.py

示例5: test_diff_template_has_users_of_changes

    def test_diff_template_has_users_of_changes(self):
        user1 = User.objects.create(username='test user 1')
        with reversion.revision:
            instance = Page.objects.create(title=get_unique_page_title(),
                                           content="test content")
            reversion.revision.user = user1

        user2 = User.objects.create(username='test user 2')
        with reversion.revision:
            instance.content = "changed test content"
            instance.save()
            reversion.revision.user = user2

        new_version, old_version = reversion.get_for_object_reference(Page,
                                                                    instance.pk)

        request, context = self._prepare_request(old_version, new_version)
        response = render(request, self.template, context)

        self.assertHasElement(response,
                              ".wikify-old .wikify-user:contains('%s')"
                              % user1.username)
        self.assertHasElement(response,
                              ".wikify-new .wikify-user:contains('%s')"
                              % user2.username)
开发者ID:cburgmer,项目名称:django-wikify,代码行数:25,代码来源:template_tests.py

示例6: get_object

    def get_object(self, queryset=None):
        """
        Returns revision based on edid_pk and revision_pk.
        """

        edid_pk = self.kwargs.get('edid_pk', None)
        revision_pk = self.kwargs.get('revision_pk', None)

        # Get version based on edid_pk and revision_pk or return 404.
        version = reversion.get_for_object_reference(EDID, edid_pk) \
                           .filter(revision__pk=revision_pk)

        try:
            version = version.get()
        except version.model.DoesNotExist:
            raise Http404()

        # Check revision and EDID date
        # FIXME: Works fine, but tests fail due to milliseconds difference
        if version.revision.date_created == version.object.modified:
            return HttpResponseBadRequest(
                'You can not revert to the current revision.'
            )

        self.kwargs['revision'] = version.revision

        # Return EDID instance
        return version.object
开发者ID:alunix,项目名称:edid.tv,代码行数:28,代码来源:views.py

示例7: test_diff_template_shows_no_previous_if_viewing_first_version

    def test_diff_template_shows_no_previous_if_viewing_first_version(self):
        with reversion.revision:
            instance = Page.objects.create(title=get_unique_page_title(),
                                           content="test content")
        new_version = reversion.get_for_object_reference(Page, instance.pk)[0]

        request, context = self._prepare_request(None, new_version)
        response = render(request, self.template, context)

        self.assertHasNoElement(response,
                                "a:contains('previous')")
开发者ID:cburgmer,项目名称:django-wikify,代码行数:11,代码来源:template_tests.py

示例8: _get_version_diff

def _get_version_diff(version):
    """Get the difference betwee
    :param version: reversion.Version object
    :return: tuple (metadata as dict, compared values as dict)
    """
    ident = version.field_dict['id']
    model = version.content_type.model_class()
    # uses the class rather than the instance so that we can also work with deleted objects
    all_versions = reversion.get_for_object_reference(model, ident).select_related('revision__user')
    all_versions = list(all_versions)
    diff = {}
    diff['object_name'] = model.__name__

    fields = {}
    foreign_keys = {}
    many_to_manys = {}
    choices_display = {}    # CharField having a list of choices

    for field in model._meta.fields:
        fields[field.name] = field
        if type(field) is django.db.models.fields.related.ForeignKey:
            foreign_keys[field.name] = field
        elif type(field) is django.db.models.fields.CharField and field.choices:
            choices_display[field.name] = field
        elif type(field) is django.db.models.fields.TextField and field.choices:
            choices_display[field.name] = field
    for field in model._meta.many_to_many:
        fields[field.name] = field
        if type(field) is django.db.models.fields.related.ManyToManyField:
            many_to_manys[field.name] = field

    try:
        previous_version = all_versions[all_versions.index(version)+1]
        diff['has_previous'] = True
        if previous_version.revision.user:
            diff['previous_user'] = previous_version.revision.user.email
        else:
            diff['previous_user'] = 'System'
        diff['previous_date'] = previous_version.revision.date_created
        diff['previous_comment'] = previous_version.revision.comment
        compared = compare_dicts(version.field_dict, previous_version.field_dict)
    except IndexError:
        diff['has_previous'] = False
        compared = compare_dicts(version.field_dict, None)

    # stores an association between the type of fields
    # available and the function to transform the value
    transform_fields = [
        (foreign_keys, find_user_friendly_rel),
        (many_to_manys, find_user_friendly_many),
        (choices_display, find_user_friendly_display_name)]

    compared_values = _build_compared_values(compared, fields, transform_fields)
    return diff, compared_values
开发者ID:ox-it,项目名称:talks.ox,代码行数:54,代码来源:views.py

示例9: test_versions_template_has_author

    def test_versions_template_has_author(self):
        user = User.objects.create(username='test_user')
        with reversion.revision:
            instance = Page.objects.create(title=get_unique_page_title(),
                                           content="test content")
            reversion.revision.user = user
        version = reversion.get_for_object_reference(Page, instance.pk)[0]

        request, context = self._prepare_request(versions=[version])
        response = render(request, self.template, context)

        self.assertHasElement(response,
                              ".wikify-user:contains('%s')" % user.username)
开发者ID:cburgmer,项目名称:django-wikify,代码行数:13,代码来源:template_tests.py

示例10: test_version_template_has_comment

    def test_version_template_has_comment(self):
        comment = 'test comment'
        with reversion.revision:
            instance = Page.objects.create(title=get_unique_page_title(),
                                           content="test content")
            reversion.revision.comment = comment
        version = reversion.get_for_object_reference(Page, instance.pk)[0]

        request, context = self._prepare_request(version)
        response = render(request, self.template, context)

        self.assertHasElement(response,
                              ".wikify-comment:contains('%s')" % comment)
开发者ID:cburgmer,项目名称:django-wikify,代码行数:13,代码来源:template_tests.py

示例11: test_version_template_has_date_of_last_change

    def test_version_template_has_date_of_last_change(self):
        with reversion.revision:
            instance = Page.objects.create(title=get_unique_page_title(),
                                           content="test content")
        version = reversion.get_for_object_reference(Page, instance.pk)[0]

        request, context = self._prepare_request(version)
        response = render(request, self.template, context)

        date = defaultfilters.date(version.revision.date_created,
                                   settings.DATETIME_FORMAT)
        self.assertHasElement(response,
                              ".wikify-date:contains('%s')" % date)
开发者ID:cburgmer,项目名称:django-wikify,代码行数:13,代码来源:template_tests.py

示例12: get_previous_version

def get_previous_version(version):
    thisId = version.object_id
    thisVersionId = version.pk

    versions = reversion.get_for_object_reference(version.content_type.model_class(), thisId)

    try:
        previousVersions = versions.filter(revision_id__lt=version.revision_id).latest(
            field_name='revision__date_created')
    except ObjectDoesNotExist:
        return False

    return previousVersions
开发者ID:nottinghamtec,项目名称:PyRIGS,代码行数:13,代码来源:versioning.py

示例13: test_versions_template_shows_ip_address

    def test_versions_template_shows_ip_address(self):
        ip_address = '127.0.0.1'
        with reversion.revision:
            instance = Page.objects.create(title=get_unique_page_title(),
                                           content="test content")
            reversion.revision.add_meta(VersionMeta,
                                        ip_address=ip_address)
        version = reversion.get_for_object_reference(Page, instance.pk)[0]

        request, context = self._prepare_request(versions=[version])
        response = render(request, self.template, context)

        self.assertHasElement(response,
                              ".wikify-user:contains('%s')" % ip_address)
开发者ID:cburgmer,项目名称:django-wikify,代码行数:14,代码来源:template_tests.py

示例14: construct_versions

def construct_versions(version_count):
    assert version_count > 0

    with reversion.revision:
        instance = Page.objects.create(title=get_unique_page_title(),
                                        content="content_0")
        reversion.revision.comment = 'Version 0'

    versions = []
    for i in range(1, version_count):
        with reversion.revision:
            instance.content = "content_%s" % i
            instance.save()
            reversion.revision.comment = 'Version %s' % i

    return reversion.get_for_object_reference(Page, instance.pk).order_by("pk")
开发者ID:pombredanne,项目名称:django-wikify,代码行数:16,代码来源:view_tests.py

示例15: save_model

    def save_model(self, request, obj, form, change):
        if not hasattr(self, 'model'):
            raise AttributeError("You need to specify 'model', attr")
        super().save_model(request, obj, form, change)

        serialized = serializers.serialize(
            'json',
            [obj.translations.get(
                language_code=request.GET.get('language') or get_language()
            )]
        )
        try:
            revision = reversion.get_for_object_reference(
                self.model, obj.pk)[0]
            revision.serialized_data = serialized
            revision.save()
        except IndexError:
            pass
开发者ID:skrzypek,项目名称:django-reversion-hvad,代码行数:18,代码来源:reversion_hack.py


注:本文中的reversion.get_for_object_reference函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。