小编fus*_*596的帖子

Django - 全文搜索 - 通配符

是否可以在Django全文搜索中使用通配符?

https://docs.djangoproject.com/en/1.11/ref/contrib/postgres/search/

        post = request.POST.get('search')
        query = SearchQuery(post)
        vector = SearchVector('headline', weight='A') + SearchVector('content', weight='B')
        rank = SearchRank(vector, query, weights=[0.1,0.2])
        data = wiki_entry.objects.annotate(rank=SearchRank(vector,query)).filter(rank__gte=0.1).order_by('-rank')
Run Code Online (Sandbox Code Playgroud)

目前它只匹配完整的单词.

字符如*%| 并没有效果.

或者我必须回到icontains?

https://docs.djangoproject.com/en/1.11/ref/models/querysets/#icontains

任何帮助表示赞赏

django postgresql

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

Django FormView 在 success_url 中传递 pk

假设我有以下 FormView,并且我想item.pk在提交表单后将其传递给其他视图。我想我必须编辑,get_success_url()但我什至不知道如何item.pk获取form_valid()

模型.py

from django.db import models

class Book(models.Model):
    field1 = models.CharField(max_length=32)
    field2 = models.CharField(max_length=32)
    field3 = models.CharField(max_length=32)

    def __str__(self):
        return self.field1
Run Code Online (Sandbox Code Playgroud)

表格.py

from django import forms
from .models import Book

class SomeForm(forms.ModelForm):

    field_order = ['field3', 'field2', 'field1']

    class Meta:
        model = Book
        fields = ['field1', 'field2', 'field3']
Run Code Online (Sandbox Code Playgroud)

视图.py

from django.shortcuts import render
from django.views.generic.edit import FormView
from .forms import SomeForm

class SomeView(FormView):
    form_class = SomeForm
    template_name = 'appname/form.html'
    success_url = reverse_lazy('somewhere') …
Run Code Online (Sandbox Code Playgroud)

django django-forms django-views django-class-based-views

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

Django DeleteView - 成功删除后发送邮件

我正在使用与文档中解释的完全一样的 DeleteView

https://docs.djangoproject.com/en/2.0/ref/class-based-views/generic-editing/#deleteview

send_mail()如果删除成功,添加额外内容的正确方法是什么?

例如,在 CreateView 我将它添加到 form_valid()

方法可以在这里找到:

https://ccbv.co.uk/projects/Django/2.0/django.views.generic.edit/DeleteView/

django django-class-based-views

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

Django - order_by() 字符和数字

我必须对包含主机名的对象列表进行排序。

主机名采用以下格式:h1, h5, h10, h12, h12-abc, h1000, x10

如果我使用 order_by('hostname') 它将像这样排序:

h1, h10, h1000, h12, h12-abc, h5, x10
Run Code Online (Sandbox Code Playgroud)

我将如何实现这样的排序:

h1, h5, h10, h12, h12-abc, h1000, x10
Run Code Online (Sandbox Code Playgroud)

主机名始终以字符开头,然后是 1-4 位数字和部分扩展名,例如“-abc”。

我想我必须使用 Substr() 来提取数字并以某种方式对数字进行排序,“10”不会列在“5”之前。

通过搜索,我发现了一些带有 extra() 的旧示例,但 Django 文档说它将在未来被弃用,并且“使用此方法作为最后的手段” https://docs.djangoproject.com/en/2.1/ref/models /查询集/#extra

面向未来的方法是什么?

django postgresql django-queryset

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

ModelForm 和 ModelSelect2Widget (django-select2)

我有一个 ModelForm,其中包含 django-select2 中的 ModelSelect2Widget

\n\n

https://github.com/applegrew/django-select2

\n\n

遵循此处的文档:

\n\n

https://django-select2.readthedocs.io/en/latest/django_select2.html#django_select2.forms.ModelSelect2Widget

\n\n

表格.py

\n\n
class RentalForm(forms.ModelForm):\n\n\n    name = forms.ChoiceField(\n            widget=ModelSelect2Widget(\n                model=ldap_data,\n                search_fields=[\'user__icontains\']\n            )\n        )\n    date_start = forms.CharField(label="Datum Ausleihe", help_text="", widget=forms.TextInput(attrs={\'class\': \'form-control form-control-sm\', \'placeholder\': \'01.01.2019\' }))\n    date_end = forms.CharField(label="Datum R\xc3\xbcckgabe", help_text="", widget=forms.TextInput(attrs={\'class\': \'form-control form-control-sm\', \'placeholder\': \'01.01.2019\' }))\n\n    class Meta:\n        model = Rental\n        fields = [\'device\', \'name\', \'date_start\', \'date_end\',]\n
Run Code Online (Sandbox Code Playgroud)\n\n

模型.py

\n\n
class ldap_data(models.Model):\n    user = models.CharField(max_length=1024)\n\n    def __str__(self):\n        return self.user\n
Run Code Online (Sandbox Code Playgroud)\n\n

ldap_data 包含大约 100 个条目。

\n\n

在我看来,一切看起来都很好,但在渲染的模板中,下拉列表中没有可用的数据name

\n\n

Google …

python django django-forms django-select2

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

Powershell 添加到多维数组

我想在 powershell 中创建一个多维数组,如下所示:

$array[0] = "colours"
$array[0][0] = "red"
$array[0][1] = "blue"
$array[1] = "animals"
$array[1][0] = "cat"
$array[1][0] = "dog"
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

$array = @()
$array += "colours"
$array += "animals"

$array[0] # outputs "colours"
$array[1] # outputs "animals"

$array[0] = @()
$array[1] = @()

$array[0] += "red"
$array[0] += "blue"
$array[1] += "cat"
$array[1] += "dog"

$array[0] # outputs "red", "blue" - i expected "colours" here
$array[0][0] # outputs "red"
Run Code Online (Sandbox Code Playgroud)

我很欣赏任何提示。

提前致谢

powershell multidimensional-array

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

如何在 Django==2.1 中删除表(sqlite3)?

我在我的应用程序中创建了以下模型events

from django.db import models
from django.utils import timezone
from django.urls import reverse


class EventType(models.Model):
    type_of_event = models.CharField(max_length=100, unique=True)

    def __str__(self):
        return self.type_of_event


class Event(models.Model):
    type_of_event = models.ForeignKey(EventType, on_delete=models.CASCADE)
    name = models.CharField(max_length=100)
    description = models.TextField()
    event_date = models.DateTimeField(default=timezone.now())
    venue = models.CharField(max_length=200)
    entry_fee = models.FloatField()

    def __str__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

由于一些错误和更改,我多次创建和删除迁移文件。现在, makemigrations 命令有效,但是当我尝试使用 : 迁移模型时python manage.py migrate,它显示以下错误:

  File "/home/anirudh/.local/share/virtualenvs/Amrita-event-manager-DHqKHtGE/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py", line 294, in execute
    return Database.Cursor.execute(self, query)
django.db.utils.OperationalError: table "events_event" already exists
Run Code Online (Sandbox Code Playgroud)

我正在使用 django 2.1 版和 sqlite3。

大多数与此类似的问题都太旧了,并且与我现在使用的版本不兼容。

sqlite django django-models

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