对任何django模型的webnotice支持。

django-wm的Python项目详细描述


提及

使用“提及”可以将Webmention功能添加到任何django模型中 设置。有一个在https://django-wm.dev/运行的源代码为 代码可用here

安装

pip install django-wm

设置

芹菜

使用CeleryRabbitMQ异步运行任务。 如果您还没有使用它们,您需要先设置它们。

系统:

sudo apt install rabbitmq-server

# Create user for celery service and make sure it can access your database
# e.g:
sudo useradd -N -M --system -s /bin/bash celery
sudo usermod -a -G www-data celery

# Run celery
sudo -u celery env/bin/celery -A projectname worker &

项目:

Add celery.py to your root project. For an example implementation see celery.py from the example project.

项目代码

  1. 根项目settings.py

    • Set DOMAIN_NAME:

      DOMAIN_NAME = 'your.url.here'  # e.g. 'django-wm.dev'
      
    • Add “mentions” to INSTALLED_APPS:

      INSTALLED_APPS = [
          'django.contrib.auth',
          'django.contrib.contenttypes',
          'django.contrib.flatpages',
          'django.contrib.sites',
          ...
          'mentions',
      ]
      
    • Add :code:’mentions.middleware.WebmentionHeadMiddleware’ to MIDDLEWARE:

      MIDDLEWARE = [
          ...
          'mentions.middleware.WebmentionHeadMiddleware',
      ]
      
  2. 根项目urls.py

    urlpatterns = [
        ...
        path('webmentions/, include('mentions.urls')),
    ]
    
  3. 在要支持的模型中包含MentionableMixin WebNotice功能。

    重要的是:任何包含混音的模型也必须 实现all_textget_absolute_url方法:

    from mentions import MentionableMixin
    ...
    
    class MyModel(MentionableMixin, models.Model):
        ...
        def all_text(self) -> str:
            return f'{self.introduction} {self.content}'
    
        def get_absolute_url() -> str:
            return reverse('app.views.name', kwargs={'slug': self.slug})
    
  4. 更新数据库表:

    python manage.py makemigrations
    python manage.py migrate
    

可选设置

将这些键添加到项目settings.py中以更改默认行为。

WEBMENTIONS_AUTO_APPROVE = bool (default: False)

  • True: Received webmentions are automatically approved and may be publicly visible.
  • False: Received webmentions require manual approval before they can be made public.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java不可访问配置设计   在java中使用json就像在javascript中一样   java如何屏蔽Android 4.0主密钥   java为什么clickable的预期条件不执行click()?   Azure事件中心:Kafka消费者在java中不轮询任何内容   javajaxb和enum实现接口   java如何在标记下添加ProgressBar和按钮   java如何为对象实现arrayList   使用多重匹配重载java构造方法重载   java使用for循环和if语句搜索帐户   java JPanel在JPanel中添加了顶部填充   IntelliJ将Java项目/模块转换为Maven项目/模块   java如何迭代arraylist中的arraylist   自定义类的java“找不到符号”错误