是否可以在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
任何帮助表示赞赏
假设我有以下 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) 我正在使用与文档中解释的完全一样的 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/
我必须对包含主机名的对象列表进行排序。
主机名采用以下格式: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
面向未来的方法是什么?
我有一个 ModelForm,其中包含 django-select2 中的 ModelSelect2Widget
\n\nhttps://github.com/applegrew/django-select2
\n\n遵循此处的文档:
\n\n\n\n表格.py
\n\nclass 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\nclass 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\nldap_data 包含大约 100 个条目。
\n\n在我看来,一切看起来都很好,但在渲染的模板中,下拉列表中没有可用的数据name
。
Google …
我想在 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)
我很欣赏任何提示。
提前致谢
我在我的应用程序中创建了以下模型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。
大多数与此类似的问题都太旧了,并且与我现在使用的版本不兼容。