我对 Django 及其方式很陌生。我正在尝试为表单创建一个自动完成字段。我的代码如下
表格.py
from django import forms
class LeaveForm(forms.Form):
leave_list = (
('Casual Leave', 'Casual Leave'),
('Sick Leave', 'Sick Leave')
)
from_email = forms.EmailField(required=True, widget=forms.TextInput(attrs={'style': 'width: 400px'}))
start_date = end_date = forms.CharField(widget=forms.TextInput(attrs={'type': 'date', 'style': 'width: 175px'}))
leave_type = forms.ChoiceField(choices=leave_list, widget=forms.Select(attrs={'style': 'width: 400px'}))
comments = forms.CharField(required=True, widget=forms.Textarea(attrs={'style': 'width: 400px; height: 247px'}))
def clean_from_email(self):
data = self.cleaned_data['from_email']
if "@testdomain.com" not in data:
raise forms.ValidationError("Must be @testdomain.com")
return data
Run Code Online (Sandbox Code Playgroud)
我想要实现的是,当用户在"From Email"
字段中键入单词时,我存储在外部数据库中的电子邮件列表应该出现在自动完成列表选项中。
模型.py
from django.db import models
class ListOfUsers(models.Model):
emp_number = …
Run Code Online (Sandbox Code Playgroud) 我正在尝试GAE for php并迷失在app.yaml文件构造中.我可以理解谷歌教程中的部分,该部分显示了如何将所有网址请求指向单个文件
https://developers.google.com/appengine/docs/php/gettingstarted/helloworld
但它对我的情况没有帮助.我将发布我已设置的内容,文件结构在图片中.
的app.yaml
application: xxx
version: 1
runtime: php
api_version: 1
threadsafe: true
handlers:
- url: /stylesheets
static_dir: stylesheets
- url: /images
static_dir: images
- url: /scripts
static_dir: scripts
- url: /favicon.ico
static_files: favicon.ico
upload: favicon.ico
- url: /
script: main.php
login: required
auth_fail_action: redirect
- url: /main
script: main.php
login: required
auth_fail_action: redirect
Run Code Online (Sandbox Code Playgroud)
所以我的xxx.appspot.com或xxx.appsport.com/main的目标网页是main.php.它工作正常.
main.php
<?php
session_start();
date_default_timezone_set('America/Los_Angeles');
require_once 'google/appengine/api/users/UserService.php';
use google\appengine\api\users\User;
use google\appengine\api\users\UserService;
$user = UserService::getCurrentUser();
$name= $user->getNickname();
$name = explode(".",$name);
$name[0]= ucfirst($name[0]);
$name[1]= ucfirst($name[1]); …
Run Code Online (Sandbox Code Playgroud) 我为php 1.8.1安装了最新的SDK,我无法让它在本地运行
D:\ google_appengine 1.8.1> dev_appserver.py --php_executable_path = D:\ PHP\php-cgi.exe\Testing --port = 5000
INFO 2013-06-13 03:16:30,931 sdk_update_checker.py:244] Checking for updates to the SDK.
INFO 2013-06-13 03:16:32,851 sdk_update_checker.py:260] Update check failed: HTTP Error 404: Not Found
**WARNING 2013-06-13 03:16:32,861 api_server.py:314] Could not initialize images API; you are likely missing the Python "PIL" module.**
INFO 2013-06-13 03:16:32,868 api_server.py:138] Starting API server at: http://localhost:60628
INFO 2013-06-13 03:16:32,874 dispatcher.py:164] Starting server "default" running at: http://localhost:5000
INFO 2013-06-13 03:16:32,878 admin_server.py:117] Starting admin server at: http://localhost:8000 …
Run Code Online (Sandbox Code Playgroud) 我创建了一个用户提交的简单表单.一切都很好但我最近发现了
SELECT * FROM `Forms` WHERE `Date` BETWEEN '{$startDate}' AND '{$endDate}'
Run Code Online (Sandbox Code Playgroud)
该列Date
是类型TEXT
.我需要它是文本因为我认为以MM/DD/YY
格式显示所有内容会更容易 .现在我不想冒更改数据类型的风险,因为表单工作正常.
Date列的示例
01-03-2013
01-04-2013
07-25-2012
08-01-2012
08-01-2012
08-01-2012
08-01-2012
Run Code Online (Sandbox Code Playgroud)
工作查询
SELECT * FROM `Forms` Where `Date` Between '01-08-2012' and '12-12-2012'
Run Code Online (Sandbox Code Playgroud)
不工作的查询
SELECT * FROM `Forms` Where `Date` Between '01-08-2012' and '01-04-2013'
Run Code Online (Sandbox Code Playgroud)
如果一年变化会导致它破裂的原因是什么?即使年份发生变化,我怎样才能让它发挥作用.