- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 Django 和 Python 新手。所以我需要关于一个问题的帮助。我检查了StackOverflow是否发现了类似的问题,但还无法解决问题。我正在 django 上创建一个网络应用程序,我想根据表单接受的标准从数据库检索旅行。但它不起作用。 这是我所做的:
模型.py
from django.db import models
from django.forms import ModelForm
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.urls import reverse
class Tour(models.Model):
TourOperator = models.ForeignKey(TourOperator, on_delete=models.PROTECT)
TourCode = models.CharField(max_length=10, unique=True, help_text='Ex. JT001 ')
Title = models.CharField(max_length=200, help_text="Title of the tour here")
Slug = models.SlugField(max_length=200)
Type = models.CharField(max_length=200, choices = TOUR_TYPES, help_text="Select from the list")
Duration = models.IntegerField(default=0)
ShortDesc = models.CharField(max_length=200, help_text='Short description in 200')
Description = models.TextField(help_text='Description of the tour...')
Itinerary = models.CharField(max_length=500, help_text="Itinerary of the tour...")
Inclusions = models.CharField(max_length=200, help_text="Inclusions of the tour; Seperate them with commas")
Exclusions = models.CharField(max_length=200, help_text="Exclusions of the tour; Seperate them with commas")
Difficulty = models.CharField(max_length=20, help_text="Enter a value between 1 to 10")
GroupSize = models.CharField(max_length=2, help_text="Group size")
Seasonality = models.CharField(max_length=100, help_text="Seasonality of the tour; Ex. July - September")
Highlights = models.CharField(max_length=100, help_text="Highlights of the tour; Ex. Yamchun fortress, etc")
#Destination_id = models.ForeignKey(Destination)
Price = models.DecimalField(max_digits=6, decimal_places=2)
Image = models.ImageField(upload_to='tours_image/')
Created = models.DateTimeField(auto_now_add=True)
Updated = models.DateTimeField(auto_now=True)
Available = models.BooleanField(default=True)
Rating = models.IntegerField()
StartDate = models.DateField(auto_now=True)
EndDate = models.DateField(auto_now=True)
form.py
from django import forms
from tours.models import Tour
class SearchTourForm(forms.ModelForm):
class Meta:
model = Tour
# fields = ('Type','Destination', 'StartDate', 'Available') #Country
exclude = ('Exclusions', )
search_tour.html
<!-- Form -->
<form action="" method="GET">
<div class="row form-group">
<div class="col-md-12">
<label for="activities">Country</label>
<select id="activities" class="form-control">
<!-- name="Country" -->
<option value="Tajikistan">Tajikistan</option>
</select>
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<label for="activities">Type of tours/Activities</label>
<select name="Type" value="{{ tour.Type }} id="activities" class="form-control">
<option value="">All tours/activities</option>
<option value="Trekking">Trekking</option>
<option value="Hiking">Hiking</option>
<option value="Jeep-tour">Jeep-tour</option>
<option value="Cross-border tour">Cross-border tour</option>
<option value="City tour tour">City tour tour</option>
<option value="Sightseeing">Sightseeing</option>
</select>
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<label for="destination">Destination</label>
<select name="Destination" id="destination" class="form-control">
<option value="">All destinations</option>
<option value="Bartang">Bartang</option>
<option value="Sarez lake">Sarez lake</option>
<option value="Murghab">Murghab</option>
<option value="Fedchenko">Fedchenko</option>
</select>
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<label for="date-start">Date Travel</label>
<input name="StartDate" type="text" id="date-start" class="form-control">
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<input type="submit" class="btn btn-primary btn-block" value="Search">
</div>
</div>
</form>
<!-- Form /-->
{% block content_main %}
<div class="row">
<div class="col-md-8 col-md-offset-2 text-center gtco-heading">
<h2>Search Result</h2>
<p>Here is what matched your query.</p>
</div>
</div>
</div>
<div class="row">
<!-- Tour viewer -->
{% for tour in tours %}
<div class="col-lg-4 col-md-4 col-sm-6">
<div class="dtpTCard">
<figure>
<img src="{{ tour.Image.url }}" alt="{{ tour.Title }}" class="img-responsive" style="width:400px; height:230px;">
</figure>
<div>
<!-- <a href=""> -->
<h2 class="dtpCardTitleTextColor"> {{ destination.Region | truncatewords:1 }} Bartang, Tajikistan {{ destination.Country | truncatewords:1 }} </h2>
<!-- </a> -->
<!-- <p>Bartang valley is the remote area in Pamir, Tajikistan.
</p> -->
<div class="row dtpCardInRow">
<!-- style="font-size: 14px; color:#000000;" -->
<div class="col-xs-12" style="padding-bottom: 5px;">
<b><u>Description</u></b>: {{ tour.ShortDesc|truncatechars:80 }}
</div>
<div class="col-xs-6">
<b><u>Tour type</u></b>: {{ tour.Type | capfirst}} <br>
<b><u>Duration</u></b>: {{ tour.Duration }} days
</div>
<div class="col-xs-6 dtpCardRight" >
<b><u>Difficulty</u></b>: {{ tour.Difficulty }}/10<br>
<b><u>Price</u></b>: ${{ tour.Price }}
</div>
</div>
<br>
<a class="btn btn-primary" href="{{tour.get_absolute_url }}">View tour</a>
<!-- /tours/details/{{tour.id }} -->
</div>
</div>
</div>
{% empty %}
<h4>Sorry, no items in this page.</h4>
<p>Coming soon...</p>
{% endfor %}
<!-- Tour /-->
</div>
<!-- Pagination -->
<div class="row">
<div class="col-sm-12" style="font-size: 18px; ">
<br>
<div class="pagination">
<span class="step-links">
{% if tours.has_previous %}
<a href="?page=1">« first</a>
<a href="?page={{ tours.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
Page {{ tours.number }} of {{ tours.paginator.num_pages }}.
</span>
{% if tours.has_next %}
<a href="?page={{ tours.next_page_number }}">next</a>
<a href="?page={{ tours.paginator.num_pages }}">last »</a>
{% endif %}
</span>
</div>
</div>
</div>
<!-- Pagination /-->
{% endblock content_main %}
vews.py
from django.views.generic import TemplateView
from django.shortcuts import render, redirect
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from tours.forms import CreateTourForm, SearchTourForm
from tours.models import Tour, Destination#, TourOperator
from django.contrib.auth.models import User
from django.db.models import Q
from django.conf import settings
def search_tours(request):
if request.method == 'GET':
form = SearchTourForm(request.GET)
if form.is_valid():
Country = form.cleaned_data['Country']
Type = form.cleaned_data['Type']
Destination = form.cleaned_data['Destination']
StartDate = form.cleaned_data['StartDate']
tours = Tour.objects.filter(Q(Country__icontains = Country)|
Q(Type__exact = int(Type))|
Q(Destination__exact = int(Destination))|
Q(StartDate__gte = int(StartDate)))
return render(request, 'tours/search_tours.html', {
'tours': tours,
'media_url': settings.MEDIA_URL,
'form':form,
})
else:
form = SearchTourForm()
tours = Tour.objects.filter(Available = True)
return render(request, 'tours/search_tours.html', {
'tours': tours,
# 'media_url': settings.MEDIA_URL,
'form':form,
})
url.py
from django.conf.urls import url
from . import views
from tours.views import ToursView
app_name = 'tours'
urlpatterns = [
url(r'^$', ToursView.as_view(), name='tours'),
url(r'^search/$', views.search_tours),
];
所以问题是,当我搜索时,它输出所有旅行并忽略表单条件。我是初学者,无法弄清楚问题是什么((
GitHub 中上述文件的链接: Django web app
最佳答案
该表格几乎肯定永远不会有效。您的模型定义了一整套字段,其中大部分是必需的,并且您的表单不会排除它们,因此它们将继续是必需的。您不会在模板中输出表单错误,也不会在模板无效时重新填充模板,因此用户永远看不到它是无效的。
但是您实际上并不需要这里的模型表单,而只是一个标准表单,其中包含您需要显式声明的四个字段。模型表单用于编辑和创建模型实例,而您不执行这些操作。
另请注意,该方法始终为 GET,因为这是标准请求。您可能应该检查 GET 是否包含数据,而不是检查这一点:
if request.GET:
关于Python/Django 2.0/Bootstrap3 : Retrieving data from db based on form inputs using Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49447937/
我有两个文本输入元素 A 和 B。 我希望用户能够从 A 中选择部分或全部文本并拖动到 B,但文本不会从 A 中消失。 假设“A”包含“quick brown fox”,用户突出显示“fox”一词并将
我正在一个网站上工作,如果在提交表单之前数字不在最小值和最大值之间,我希望数字输入能够自行更正。我的代码如下: HTML: JavaScript: function CorrectOverUnder
在检查输入值是否存在并将其分配给变量时,我看到了两种实现此目的的方法: if(Input::has('id')) { $id = Input::get('id'); // do som
我意识到 有一个 border-box盒子模型,而有一个 content-box盒子模型。此行为存在于 IE8 和 FF 中。不幸的是,这使我无法将这种样式应用于大小均匀的输入: input, tex
在 Polymer 文档 ( https://elements.polymer-project.org/elements/iron-input ) 中,我发现: 而在另一个官方文档(https://
我使用 jquery 添加/删除输入 我使用append为日期/收入添加多个Tr 我还使用另一个附加来添加多个 td 以获取同一日期 Tr 中的收入 我添加多个日期输入,并在此表中添加多个收入输入 我
Python3 的 input() 似乎在两次调用 input() 之间采用旧的 std 输入。有没有办法忽略旧输入,只接受新输入(在 input() 被调用之后)? import time a =
在一些教程中,我看到了这些选择器: $(':input'); 或 $('input'); 注意“:”。 有什么不同吗? 最佳答案 $('input') = 仅包含元素名称,仅选择 HTML 元素。 $
我有下一个 html 表单: Nombre: El nombre es obligatorio. Solo se pe
有两种方法可以在组件上定义输入: @Component({ inputs: ['displayEntriesCount'], ... }) export class MyTable i
input: dynamic input is missing dimensions in profile onnx2trt代码报错: import numpy as np import tensor
所以,我有允许两个输入的代码: a, b = input("Enter a command: ").split() if(a == 'hello'): print("Hi") elif(a =
我有一个与用户交流的程序。我正在使用 input() 从用户那里获取数据,但是,我想告诉用户,例如,如果用户输入脏话,我想打印 You are swearing!立即删除它! 而 用户正在输入。 如您
我在运行 J2ME 应用程序时遇到了一些严重的内存问题。 所以我建立了另一个步骤来清除巨大的输入字符串并处理它的数据并清除它。但直到我设置 input = null 而不是 input = "" 才解
我想在我的 android 虚拟设备中同时启用软输入和硬键盘。我知道如何两者兼得,但不会两者。 同时想要BOTH的原因: 软输入:预览当键盘缩小屏幕时布局如何调整大小 硬键盘:显然是快速输入。 提前致
我有一个邮政编码字段,在 keyup 上我执行了一个 ajax 调用。如果没有可用的邮政编码,那么我想添加类“input-invalid”。但问题是,在我单击输入字段的外部 某处之前,红色边框验证不会
根据我的理解使用 @Input() name: string; 并在组件装饰器中使用输入数组,如下所示 @Component({ ... inputs:
我有一段代码是这样的 @Component({ selector: 'control-messages', inputs: ['controlName: control'],
在@component中, @input 和@output 属性代表什么以及它们的用途是什么? 什么是指令,为什么我们必须把指令放在下面的结构中? directives:[CORE_DIRECTIVE
有没有一种方法可以测试变量是否会使SAS中的INPUT转换过程失败?或者,是否可以避免生成的“NOTE:无效参数”消息? data _null_; format test2 date9.; inp
我是一名优秀的程序员,十分优秀!