我正在尝试用Eclipse设置Django.现在我正在创建一个新的Pydev Django项目,并收到"Django not found"错误消息.
当我尝试验证Django是否通过命令行集成时,它可以工作.
>>> import django
>>> print django.get_version()
1.2.5
Run Code Online (Sandbox Code Playgroud)
我有两个python安装,2.7和3.2,我确信我使用Eclipse(和命令行)2.7.我究竟做错了什么?
有没有办法让Django给我发错误报告,即使我已将调试设置为True?
我在文档中没有看到任何内容.
编辑:
如果重要的话我会使用Django 1.2.不,这不是一个生产系统.
我想在我的模板上显示一些事情列表.所以我有一个视图来生成该列表并将其传递给模板,如下所示:
newlinks = []
try:
links=urllib2.urlopen("<<Some HTML file link>>").readlines()
except (urllib2.HTTPError):
links = ''
pass
for link in links:
newlinks.append(link[0:-1])
return render_to_response('template11.html', {'links',newlinks}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
但是在渲染时,我得到了TypeError
Exception Type: TypeError
Exception Value: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)
这是模板代码:
{% for link in links %}
<li>{{ link }}</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我不明白这个错误.此外,如果这种方法是错误的(我认为是),那么我如何将列表传递给模板?
在我的settings.py中,我有以下日志配置.如果出现错误,我会收到来自root @ localhost的电子邮件.我的问题是我有几个项目,并希望所有错误消息发送到同一个电子邮件地址.但现在非常讨厌识别错误发生在哪个站点上,所以我想将root @ localhost中的发件人电子邮件地址替换为error@project-site.tld.这可能还是我要创建一些虚拟邮箱?
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'mail_admins': {
'level': 'DEBUG',
'class': 'django.utils.log.AdminEmailHandler'
},
'logfile': {
'class': 'logging.handlers.WatchedFileHandler',
'filename': '/var/log/django/proj_name.log'
},
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'DEBUG',
'propagate': True,
},
'django': {
'handlers': ['logfile'],
'level': 'DEBUG',
'propagate': False,
},
}
}
Run Code Online (Sandbox Code Playgroud) 似乎Django 1.9中的错误电子邮件比以前更长。我认为“设置”有一个完整的部分,我认为这是多余的,而且可能也很容易透露。
编辑Django发送的错误电子邮件的最佳方法是什么?
编辑:我不只是试图隐藏敏感信息。Django 1.9中的电子邮件中包含更多内容,我想将电子邮件的格式更改为更短。我喜欢旧的方式。
我在 heroku 上部署了 django 站点,当我运行使用 django taggit 的 url 时,会出现错误。我使用 django taggit 作为元键来查找相关博客。
我的Django版本是1.2.5,它在Python 2.6.5中运行.我从Ubuntu软件中心安装了debug_toolbar,它没有模块命名消息错误.使用debug_toolbar版本的Django - 1.1.1,没有debug_toolbar - 1.2.5.当我删除它时,Django运行良好.debug_toolbar有什么问题?我该如何解决?
安装前:
>>> import django
>>> django.VERSION
(1, 2, 5, 'final', 0)
i159@i159-desktop:~/djproj/pastebin$ python2.6 manage.py runserver
Validating models...
0 errors found
...
Run Code Online (Sandbox Code Playgroud)
安装后:
>>> import django
>>> django.VERSION
(1, 1, 1, 'final', 0)
i159@i159-desktop:~/djproj/pastebin$ python2.6 manage.py runserver
Error: No module named messages
Run Code Online (Sandbox Code Playgroud) 我试图做的是覆盖我的一个模型的保存方法 Shastra
class Shastra(models.Model):
something = models.IntegerField()
def save(self, *args, **kwargs):
post_content(app='shastra', content=self)
super(Shastra, self).save(*args, **kwargs)
# The function being called in the override function
def post_content(*args, **kwargs):
FbApiContent(content = kwargs['content']).save()
# The model being used by the override function
from shastra.models import Shastra
class FbApiContent(models.Model):
content = models.ForeignKey(Shastra)
Run Code Online (Sandbox Code Playgroud)
Traceback (most recent call last):
File "C:\Documents and Settings\EC.32-SAMUEL\workspace\kiosk\manage.py", line 14, in <module>
execute_manager(settings)
File "C:\Python26\lib\site-packages\django\core\management\__init__.py", line 438, in execute_manager
utility.execute()
File "C:\Python26\lib\site-packages\django\core\management\__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python26\lib\site-packages\django\core\management\base.py", …Run Code Online (Sandbox Code Playgroud) 在views.py中,我有以下视图,在注册新用户帐户时会调用该视图.它所做的就是从请求中获取用户名,电子邮件和密码,然后尝试使用这些凭据创建用户.在下面的代码中,"A"被打印,但"B"没有,因为它崩溃了:
views.py
def register(request):
if request.method == 'POST':
query_dict = request.POST
username = query_dict['username']
email = query_dict['user_email']
password = query_dict['password']
role = query_dict['role']
print "A"
user = User.objects.create_user(username, email, password)
# the handler is called here and creates the user profile
print "B"
user = authenticate(username=username, password=password)
user_profile = user.get_profile()
user_profile.role = role
user_profile.save()
if user is not None and user.is_active:
login(request, user)
return HttpResponseRedirect("/")
Run Code Online (Sandbox Code Playgroud)
在myapp/models.py我有处理程序的以下代码.
'models.py`
post_save.connect(create_user_profile, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
print "created="+str(created)
if created: …Run Code Online (Sandbox Code Playgroud) 我正在使用Django 1.7.通常你可以DoesNotExist在模型上捕获异常;
try:
...
except model.DoesNotExist, den:
...
Run Code Online (Sandbox Code Playgroud)
我想抓住任何DoesNotExist例外.我真的不想关心它的模型.实际上,我真的不知道哪个模型DoesNotExist通过代码片.我的意思是,我无法知道模型.
所以我必须以DoesNotExist某种方式捕获任何错误.
有没有办法捕获任何DoesNotExist错误Django?
我已经坚持了这个错误很长一段时间了,我只是想不通它意味着什么.当我尝试将对象保存到我的mysql数据库时,就会发生这种情况.有任何想法吗?
谢谢您的帮助!
我在django中遇到这个错误:
AttributeError at /
'str' object has no attribute '_meta'
Request Method: GET
Request URL: http://localhost:8000/
Django Version: 1.3
Exception Type: AttributeError
Exception Value:
'str' object has no attribute '_meta'
Exception Location: C:\Python27\lib\site-packages\django\contrib\admin\sites.py in register, line 80
Python Executable: C:\Python27\python.exe
Python Version: 2.7.2
Python Path: ['D:\\programming\\django_projects\\ecomstore',
'C:\\Python27\\lib\\site-packages\\setuptools-0.6c9-py2.7.egg',
'C:\\Python27\\lib\\site-packages\\pymysql-0.3-py2.6.egg',
'C:\\Windows\\system32\\python27.zip',
'C:\\Python27\\DLLs',
'C:\\Python27\\lib',
'C:\\Python27\\lib\\plat-win',
'C:\\Python27\\lib\\lib-tk',
'C:\\Python27',
'C:\\Python27\\lib\\site-packages',
'C:\\Python27\\lib\\site-packages\\PIL']
Server time: Fri, 13 Jan 2012 16:44:18 +0500
Run Code Online (Sandbox Code Playgroud)
如果我注释掉这个错误就不会发生,我admin.autodiscover()也在django中使用了ModelForm,所以是因为ModelForm?以下是ModelForm代码:
from django import forms
from catalog.models import Product
class ProductAdminForm(forms.ModelForm):
class Meta:
model=Product …Run Code Online (Sandbox Code Playgroud) 好的,所以我有一个表单然后我想打印用户在表单中提交时的错误(如果有的话).所以在我的模板中,我有代码
{% if form.errors %}
{{ form.errors }}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
现在,问题是,假设用户忘记输入用户名,django将显示此错误消息.
username
- This field is required.
Run Code Online (Sandbox Code Playgroud)
除了" - "是一个子弹..如何删除项目符号,并使其与用户名一致?我试图使用CSS并使显示内联但不起作用.
django django-templates django-forms django-views django-errors
django ×13
django-errors ×13
python ×4
django-forms ×2
django-views ×2
django-admin ×1
django-email ×1
django-users ×1
eclipse ×1
logging ×1
pydev ×1