可能是一个糟糕的问题,但我正在使用Django的UserCreationForm(略微修改为包含电子邮件),我想删除Django自动在HTML页面上显示的help_text.
在我的HTML页面的注册部分,它有用户名,电子邮件,密码1和密码2字段.但是在用户名下面是"必需的.不超过30个字符.字母,数字和@ ...".在密码确认(密码2)下,它显示"输入与上面相同的密码进行验证".
我该如何删除这些?
#models.py
class UserCreateForm(UserCreationForm):
email = forms.EmailField(required=True)
def save(self, commit=True):
user = super(UserCreateForm, self).save(commit=False)
user.email = self.cleaned_data['email']
if commit:
user.save()
return user
class Meta:
model = User
fields = ("username", "email", "password1", "password2")
exclude = ('username.help_text')
#views.py
def index(request):
r = Movie.objects.all().order_by('-pub_date')
form = UserCreateForm()
return render_to_response('qanda/index.html', {'latest_movie_list': r, 'form':form}, context_instance = RequestContext(request))
#index.html
<form action = "/home/register/" method = "post" id = "register">{% csrf_token %}
<h6> Create an account </h6>
{{ form.as_p }}
<input type = …
Run Code Online (Sandbox Code Playgroud) 所以我知道已经有相当多的文档,但我似乎无法让它工作.我正在向Heroku部署一个Django应用程序,并且我正在尝试将PIL安装到我的virtualenv中(应用程序的主要部分需要用户上传的图像).
我试过了两个
easy_install PIL
Run Code Online (Sandbox Code Playgroud)
和
pip安装PIL
每个人安装结束
error: Unable to find vcvarsall.bat.
Run Code Online (Sandbox Code Playgroud)
如何让PIL进入我的virtualenv?任何人都可以带我走过吗?
谢谢!
之前多次上传到Heroku,这次不知道什么是错的 - 也许是因为我正在使用公共互联网?
无论如何,所以我添加了一个新的公钥
>heroku keys:add
Found existing public key: C:/Users/Chris/.ssh/id_rsa.pub
Uploading SSH public key C:/Users/Chris/.ssh/id_rsa.pub...done
>git push heroku master
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
为什么我不能推送到heroku?
我检查了我的钥匙
heroku键
我的终端正确,所以它应该工作.有人解散了吗?
似乎是一个相当简单的问题,但似乎无法弄明白.我一直在关注Heroku的Django指令(https://devcenter.heroku.com/articles/django#using-a-different-wsgi-server)
我正在尝试创建一个Procfile,在Foreman启动时在本地运行它.我已经下载并安装了Gunicorn和Gevent,在我的root中手动添加了一个名为Procfile的.txt文件(让我知道是否有更好的方法来执行此操作,然后添加新的文本文件并将其命名为Procfile),但Foreman启动仍然保持返回
(venv)c:\users\chris\hellodjango>foreman start
ERROR: Procfile does not exist.
Run Code Online (Sandbox Code Playgroud)
这是我的目录:
hellodjango/
.gitignore
manage.py
requirements.txt
Procfile.txt
hellodjango/
__init__.py
__init__.pyc
settings.py
settings.pyc
urls.py
urls.pyc
wsgi.py
wsgi.pyc
venv/
Include/
Lib/
Scripts/
Run Code Online (Sandbox Code Playgroud)
我的requirements.txt内容是
Django==1.4.2
distribute==0.6.28
dj-database-url==0.2.1
psycopg2==2.4.5
wsgiref==0.1.2
gunicorn==0.15.0
Run Code Online (Sandbox Code Playgroud)
我的Procfile.txt内容是
web: gunicorn hellodjango.wsgi -b 0.0.0.0:$PORT
Run Code Online (Sandbox Code Playgroud)
我错过了什么,为什么我的应用程序找不到ProcFile?
Heroku和Amazon S3的新手,请耐心等待.将我的Django应用程序上传到Heroku,并且用户媒体上传时出现问题.模型如下:
#models.py
class Movie(models.Model):
title = models.CharField(max_length = 500)
poster = models.ImageField(upload_to = 'storages.backends.s3boto')
pub_date = models.DateTimeField(auto_now_add = True)
author = models.ForeignKey(User)
Run Code Online (Sandbox Code Playgroud)
poster属性是上传图像的属性.我在本地运行良好,现在在Heroku上有一个错误.所以我添加了'storages.backends.s3boto',正如许多其他帖子告诉我的那样.(不确定是否正确).
我的Settings.py文件现在看起来像这样,有点混乱:
#settings.py
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
PROJECT_DIR = os.path.join(PROJECT_ROOT, '../qanda')
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = '****************'
AWS_SECRET_ACCESS_KEY = '************'
AWS_STORAGE_BUCKET_NAME = 'mrt-assets'
AWS_PRELOAD_METADATA = True
MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'qanda/media/movie_posters/)
MEDIA_URL = '/media'
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
STATIC_URL = 'https://mrt-assets.s3.amazonaws.com/static/'
STATICFILES_DIRS = (os.path.join(PROJECT_DIR, 'static'),)
Run Code Online (Sandbox Code Playgroud)
我的存储桶被称为mrt-assets,其中有2个静态文件夹(css,js,images和media.我现在不太担心静态文件,因为我已经将CSS/JS文件硬编码到我的HTML文件*,但如何将我的用户上传媒体(任何类型的图像)放入mrt-assets/media?
*虽然如果有人想帮助STATIC文件也会很棒.但用户上传媒体更为紧迫.
编辑(根据Yuji的评论):
尝试过多种选择,但都没有.我已经回去并删除了很多更改,现在这是我的设置
#settings.py
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
MEDIA_ROOT = 'http://s3.amazonaws.com/mrt-assets/media/' …
Run Code Online (Sandbox Code Playgroud) 所以我正在用一个名为hellodjango的虚拟应用程序测试Heroku,并将所有内容推送到git.
添加了我的.gitignore文件(告诉我,如果我错了,我创建了一个名为django.gitignore的文本文档,内容为1行,没有空格,venv*.log*.pot*.pyclocal_settings.py.
不知道我做错了什么,但这是我的目录
hellodjango/
django.gitignore
manage.py
requirements.txt
hellodjango/
__init__.py
__init__.pyc
settings.py
settings.pyc
urls.py
urls.pyc
wsgi.py
wsgi.pyc
venv/
Include/
Lib/
Scripts/
Run Code Online (Sandbox Code Playgroud)
所以我不想播放任何.pyc文件或venv文件夹.
在我的命令行中,我输入
git init
Initialized empty Git repository in /Users/Chris/hellodjango/.git/
>git add .
>git status
Run Code Online (Sandbox Code Playgroud)
当我输入git status时,venv和.pyc中的所有文件都会被暂存.为什么.gitignore不工作?
为大学生写一个应用程序 - 显示一个部门列表,你点击一个,然后它会显示该部门的课程,点击一个,然后显示教授该课程的教授.
遇到网址问题 - 我的应用程序会将我重定向到错误的视图.
所以我有3个型号
class Department(models.Model):
subject = models.CharField(max_length = 25)
pub_date = models.DateTimeField(auto_now_add = True)
def __unicode__(self):
return self.subject
class Course(models.Model):
department = models.ForeignKey(Department)
course_number = models.CharField(max_length = 50)
course_name = models.CharField(max_length = 100, blank = True, null = True)
c_pub_date = models.DateTimeField(auto_now_add = True)
def __unicode__(self):
return self.course_number
class Professor(models.Model):
course = models.ForeignKey(Course)
prof_name = models.CharField(max_length = 50)
p_pub_date = models.DateTimeField(auto_now_add = True)
def __unicode__(self):
return self.prof_name
Run Code Online (Sandbox Code Playgroud)
然后我的应用程序URL conf将转到视图,课程和教授,具体取决于URL
urlpatterns = patterns('qanda.views',
url(r'^$', 'index'),
url(r'(?P<department_id>\d+)/$', …
Run Code Online (Sandbox Code Playgroud) 我正在编写一个在页面上显示一组图像的视图.
这是模型
#models.py
class Movie(models.Model):
title = models.CharField(max_length = 500)
poster = models.ImageField(upload_to = 'qanda/static/movie_posters')
#index.html
<img src = "{{ STATIC_URL }}movie_posters/{{ movie.poster }}"></a>
Run Code Online (Sandbox Code Playgroud)
当我运行服务器时,图像不会出现.图像尝试加载的URL是
http://127.0.0.1:8000/static/movie_posters/qanda/static/movie_posters/image.jpg
Run Code Online (Sandbox Code Playgroud)
当它应该尝试加载的URL是
http://127.0.0.1:8000/static/movie_posters/image.jpg
Run Code Online (Sandbox Code Playgroud)
我的假设是,因为movie.poster位于'qanda/static/movie_posters',当我在HTML上呈现它时,它正在加载静态URL(127.0.0:8000 /静态),然后是位置'qanda/static /最后是movie_posters.如何正确渲染图像?