小编rar*_*iru的帖子

在视图中使用全文搜索 + GIN (Django 1.11)

我需要一些帮助来在 django 视图中使用 GIN 索引为全文搜索构建正确的查询。我有一个相当大的数据库(约 40 万行),需要对其中的 3 个字段进行全文搜索。尝试使用django 文档搜索,这是 GIN 之前的代码。它有效,但需要 6 秒以上的时间来搜索所有字段。接下来,我尝试实现GIN索引以加快搜索速度。已经有很多问题如何构建它。但我的问题是 -使用 GIN 索引进行搜索时,视图查询如何更改?我应该搜索哪些字段?

在 GIN 之前:

models.py

class Product(TimeStampedModel):
    product_id = models.AutoField(primary_key=True)
    shop = models.ForeignKey("Shop", to_field="shop_name")
    brand = models.ForeignKey("Brand", to_field="brand_name")
    title = models.TextField(blank=False, null=False)
    description = models.TextField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

视图.py

   
def get_cosmetic(request):
    if request.method == "GET":
        pass
    else:
        search_words = request.POST.get("search")
        search_vectors = (
            SearchVector("title", weight="B")
            + SearchVector("description", weight="C")
            + SearchVector("brand__brand_name", weight="A")
        )

        products = (
            Product.objects.annotate(
                search=search_vectors, rank=SearchRank(search_vectors, search)
            ) …
Run Code Online (Sandbox Code Playgroud)

postgresql gwt-gin django-models django-queryset django-views

7
推荐指数
1
解决办法
3730
查看次数

Django 导入 - 导出:尝试在具有唯一或唯一性_together 约束的字段中插入重复记录时出现 IntegrittyError

更新

我已提交功能请求。我们的想法是passIntegrittyError的时候由数据库产生uniqueunique_together拒绝已经存在于数据库中的记录。


我有以下模型:

class Compositions(models.Model):
    composer_key = models.ForeignKey(
        Composer,
        )
    composition = models.CharField(
        max_length=383,
        )

    class Meta(object):
        unique_together = (('composer_key', 'composition'), )
Run Code Online (Sandbox Code Playgroud)

在管理界面中使用 django-import-export,而不为idcsv 文件中的每个条目提供一个,...如果一对 csv 文件已经存在,该过程将因完整性错误而中断

duplicate key value violates unique constraint "data_compositions_composer_key_id_12f91ce7dbac16bf_uniq"
DETAIL:  Key (composer_key_id, composition)=(2, Star Wars) already exists.
Run Code Online (Sandbox Code Playgroud)

CSV 文件如下:

id  composer_key    composition
        1           Hot Stuff
        2           Star Wars
Run Code Online (Sandbox Code Playgroud)

这个想法skip_row在管理员中使用和实现它。

管理.py:

class CompositionsResource(resources.ModelResource):

    class Meta:
        model = Compositions
        skip_unchanged …
Run Code Online (Sandbox Code Playgroud)

python django django-import-export

6
推荐指数
2
解决办法
3228
查看次数

Celery - RabbitMQ 即服务 - 代理安全连接 (TSL/SSL) - 消息签名

我正在尝试在我的 Django Web 服务器上安全地配置Celery,我可以找出两种实现此目的的替代方法。保护代理或签署消息。

  • Celery,需要一个消息代理,在这种情况下是RabbitMQ

    我正在使用“RabbitMQ 即服务”实现,这意味着使用amqp协议通过互联网访问 RabbitMQ 服务器。

    服务商分发了一个amqp uri,同时也支持 amqps:

    “amqps”URI 方案用于指示客户端与服务器建立安全连接。

    • 显然,这就是我所需要的,否则我所有的消息都会在网络上传播,赤裸裸地在电线上。

    为了使用 amqps,celery 需要以下配置

    import ssl
    
    BROKER_USE_SSL = {
      'keyfile': '/var/ssl/private/worker-key.pem',
      'certfile': '/var/ssl/amqp-server-cert.pem',
      'ca_certs': '/var/ssl/myca.pem',
      'cert_reqs': ssl.CERT_REQUIRED
    }
    
    Run Code Online (Sandbox Code Playgroud)

    问题: 在哪里可以找到这些.pem文件?

    根据RabbitMQ docs,我必须自己创建它们并配置 RabbitMQ 服务器以使用它们。

    但是,我没有运行服务器。如上所述,我有一个支持 amqps 的“RabbitMQ 即服务”提供者。我应该让他给我提供那些.pem文件吗?

  • 芹菜,也可以签名消息

    (尝试这种方法,我收到了我报告No encoder installed for auth错误。)

    问题:这是否意味着我可以使用我的证书来保护连接作为替代配置BROKER_USE_SSL

    还有一个关于消息签名的说明:

    auth 序列化程序不会加密消息的内容,因此如果需要,必须单独启用它。

    子问题:加密消息的内容是否可以保护我免受“当前”RabbitMQ …

security ssl amqp rabbitmq celery

5
推荐指数
1
解决办法
2564
查看次数

Django Import-Export:管理界面"TypeError at /"

我想弄清楚如何使用Django Import-Export,

https://pypi.python.org/pypi/django-import-export

通过阅读文档

https://django-import-export.readthedocs.org/en/latest/getting_started.html#admin-integration

管理集成:

对于我的基本python知识,示例代码与其后面的结果照片之间的差距似乎很大.

我设法编写以下代码:

geographic_system/models.py:

from django.db import models
from django.utils.translation import ugettext_lazy as _

class Regional_Units(models.Model):
    regional_unit = models.CharField(
        max_length=64, verbose_name=_(u'Regional Units'))

    def __unicode__(self):
        return u'%s' % (self.regional_unit)
Run Code Online (Sandbox Code Playgroud)

geographic_system/resources.py:

from import_export import resources
from geographical_system.models import Regional_Units
from import_export.admin import ImportExportModelAdmin


class Regional_Units_Resource(resources.ModelResource):

    class Meta(object):
        model = Regional_Units


class Regional_Units_Resource_Admin(ImportExportModelAdmin):
    resouce_class = Regional_Units_Resource # Why originally commented out?
    #pass #Why pass?
Run Code Online (Sandbox Code Playgroud)

geographic_system/admin.py:

from django.contrib import admin
from geographical_system.models import …
Run Code Online (Sandbox Code Playgroud)

python django

4
推荐指数
1
解决办法
3867
查看次数

Psycopg2无法在python 3上安装,pip发出致命错误

$ yum install python3 postgresql python-devel libpqxx-devel
Loaded plugins: langpacks, refresh-packagekit
Package python3-3.3.2-8.fc20.x86_64 already installed and latest version
Package postgresql-9.3.2-2.fc20.x86_64 already installed and latest version
Package python-devel-2.7.5-9.fc20.x86_64 already installed and latest version
Package 1:libpqxx-devel-3.2-0.5.fc20.x86_64 already installed and latest version
Nothing to do
Run Code Online (Sandbox Code Playgroud)

我想在我的virtualenv中安装psycopg2来连接django和postgresql数据库.

在Fedora 19和postgresql-9.2中,pg_config的路径是:

/usr/pgsql-9.2/bin

在Fedora 20中,该目录不存在.

但是可以在中找到pg_config /usr/bin/pg_config.

试图安装psycopg2:

 $ export PATH=$PATH:/usr/bin; pip install psycopg2
Downloading/unpacking psycopg2
  Downloading psycopg2-2.5.2.tar.gz (685kB): 685kB downloaded
  Running setup.py egg_info for package psycopg2

... -compiling output here- ...

gcc -pthread …
Run Code Online (Sandbox Code Playgroud)

pip fedora psycopg2 python-3.3

4
推荐指数
1
解决办法
5623
查看次数

Django Trigram:在 Django 中创建 gin 索引并搜索建议词

我有带有标题和描述字段的模型。

我想为标题和描述字段中的所有单词创建一个 GIN 索引

所以我使用 SQL 按以下方式执行此操作:

第 1 步:使用简单的配置创建一个包含标题和描述中所有单词的表格

CREATE TABLE words AS SELECT word FROM  ts_stat('SELECT to_tsvector(''simple'',COALESCE("articles_article"."title", '''')) || to_tsvector(''simple'',COALESCE("articles_article"."description", '''')) FROM "articles_article"');
Run Code Online (Sandbox Code Playgroud)

STEP2:创建GIN索引

CREATE INDEX words_idx ON words USING GIN (word gin_trgm_ops);
Run Code Online (Sandbox Code Playgroud)

第三步:搜索

SELECT word, similarity(word, 'sri') AS sml
  FROM words
  WHERE word % 'sri'
  ORDER BY sml DESC, word;

Result:

word  sml
sri 1
srila 0.5
srimad  0.428571
Run Code Online (Sandbox Code Playgroud)

如何在 DJANGO 中执行此操作,而且我还必须不断更新 GIN 索引

django postgresql trigram

3
推荐指数
1
解决办法
1427
查看次数

Vim Regex:在每行的最后一个单词之前添加字符

Word1 Word2 Word3 ... Wordx LastWord
Word1 Word2 Word3 ... Wordx LastWord
Run Code Online (Sandbox Code Playgroud)

我怎么可能添加"|" 在每行的最后一个单词之前,使用vim中的Regex返回以下结果?

Word1 Word2 Word3 ... Wordx | LastWord
Word1 Word2 Word3 ... Wordx | LastWord
Run Code Online (Sandbox Code Playgroud)

regex vim

2
推荐指数
1
解决办法
1366
查看次数

Django:在通用视图中处理空查询集

我有一个通用视图,有时不返回任何内容。

在这种情况下,我如何有效地处理它并引发 404?

我的方法成功了,但命中了数据库。

class MyListView(ListView):
    template_name = 'template/quest.html'

    def get_queryset(self, *args, **kwargs):

        query = (
            MyModel.objects
            .filter(...)
            .filter(...)
        )

        if query.exists():
            return query
        else:
            raise Http404
Run Code Online (Sandbox Code Playgroud)

django django-generic-views

2
推荐指数
1
解决办法
779
查看次数

“NoneType”对象没有属性“add”

我有以下用户对象,

class User(AbstractBaseUser, PermissionsMixin, Base):
    username = models.CharField(
        db_index=True, 
        null=False, 
        unique=True,  
        max_length=255,
    )
    mobile = PhoneNumberField(
        db_index=True,  
        null=False,  
        unique=True,
    )
    is_staff = models.BooleanField(default=False)
    is_superuser = models.BooleanField(default=False)
    is_active = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)

我有以下课程来管理连接,

class Connections(Base):
    owner = models.OneToOneField(
        User, 
        on_delete=models.CASCADE,
        null=True,
    )
    friends = models.ForeignKey(
        User, 
        on_delete=models.CASCADE,
        related_name='friend_set',
        null=True, 
        blank=True,
    )
    followers = models.ForeignKey(
        User, 
        on_delete=models.CASCADE,
        related_name='follower_set',
        null=True, 
        blank=True,
    )
    followings = models.ForeignKey(
        User, 
        on_delete=models.CASCADE,
        related_name='following_set',
        null=True, 
        blank=True,
    )
Run Code Online (Sandbox Code Playgroud)

当我尝试添加好友时,

sender = User.objects.get(
    id=kwargs.get('sender_id')
)
receiver = User.objects.get(
    id=kwargs.get('receiver_id')
)
sender_connections, created =( …
Run Code Online (Sandbox Code Playgroud)

python django django-models

2
推荐指数
1
解决办法
1929
查看次数

Vim - spf13,标志解释(感叹号,加号)和警告消息澄清

在 spf13 配置上运行 vim,我有以下问题:

在 python 文件中,执行 PymodeLintAuto 后,已拆分几行以符合 pep8,但其中一行旁边有一个感叹号,其下一行旁边有一个加号,如图所示:

Vim 登录 Python 文件

在我的 .vimrc.local 文件中也可以找到相同的标志,但状态行的右下角会出现警告:

Vim 登录配置文件

!和符号的含义是什么+?我如何纠正我的代码以使警告消失?

我认为该+符号表明该行是相对于文件的先前版本添加的。标志是否应该!表明该行包含已更正的错误?

例如,该! trailing[164]消息表明该符号位于 164 行旁边,并带有尾随空格?!(但是,第 37 行没有这样的尾随空格)

照明细节:

涉及到的模块有:

  • vim 航空公司
  • vim 表示

最后,侧面的感叹号和右下角的感叹号没有任何关系。

python vim

1
推荐指数
1
解决办法
1338
查看次数