跳转到主要内容

Django应用程序,用于要求用户接受服务条款。

项目描述

此Django应用程序添加了对版本化服务条款的支持。

安装

  1. 使用pip安装

    $ pip install django-legal
  2. legal 添加到您的 INSTALLED_APPS 设置中。

  3. (可选) 添加一个新的设置:LEGAL_TOS_NAME = 'terms_of_service'

  4. 更新 urls.py 如下

    url(r'^legal/', include('legal.urls')),
  5. 创建一个新的协议和协议版本(理想情况下通过数据迁移)

    # -*- coding: utf-8 -*-
    import os
    from south.v2 import DataMigration
    
    # This should be the same value as LEGAL_TOS_NAME (if you overrode it)
    AGREEMENT_NAME = 'tos'
    
    
    class Migration(DataMigration):
        def forwards(self, orm):
            agreement, created = orm['legal.Agreement'].objects.get_or_create(name=AGREEMENT_NAME)
    
            # This file should live in the same directory as the migration
            f = open('%s/tos_content_2013_08_01.html' % os.path.dirname(__file__), 'r')
            orm['legal.AgreementVersion'].objects.create(agreement=agreement, date='2013-08-01', content=f.read())
    
        def backwards(self, orm):
            agreement = orm['legal.Agreement'].objects.get(name=AGREEMENT_NAME)
            agreement.delete()
    
        models = {
            'legal.agreement': {
                'Meta': {'object_name': 'Agreement'},
                'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
                'name': (
                    'django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'})
            },
            'legal.agreementversion': {
                'Meta': {'ordering': "['-date']", 'unique_together': "(('agreement', 'date'),)",
                         'object_name': 'AgreementVersion'},
                'agreement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['legal.Agreement']"}),
                'content': ('django.db.models.fields.TextField', [], {}),
                'date': ('django.db.models.fields.DateTimeField', [], {}),
                'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
            }
        }
    
        # Change this to be the name of the app where the migration lives
        complete_apps = ['my-app']
        symmetrical = True

测试此应用程序

包含修改后的 manage.py 和Django设置文件,用于测试此应用程序

$ python manage.py test

测试您的应用程序

您可能会发现中间件对您的测试有点过度,因为它要求您创建一个协议和版本,并代表您的测试用户接受协议。如果您想禁用中间件,请将以下内容添加到您的设置中

if 'test' in sys.argv:
  MIDDLEWARE_CLASSES = list(MIDDLEWARE_CLASSES)
  MIDDLEWARE_CLASSES.remove('legal.middleware.TermsOfServiceAcceptanceMiddleware')

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分发

django-legal-1.0.tar.gz (8.4 kB 查看散列)

上传时间:

由以下支持