我在我的Django模型中使用自定义权限,如下所示:
class T21Turma(models.Model):
class Meta:
permissions = (("can_view_boletim", "Can view boletim"),
("can_view_mensalidades", "Can view mensalidades"),)
Run Code Online (Sandbox Code Playgroud)
问题是,当我向列表添加权限auth_permission时,当我运行syncdb时,它不会被添加到表中.我究竟做错了什么.如果它有任何区别我在南方使用数据库迁移.
我有一个Postgres架构,看起来像:

问题是每当我在描述栏中保存超过500个字符的文本时,我都会收到错误:
value too long for type character varying(500)
Run Code Online (Sandbox Code Playgroud)
在Postgres的文档中,它说类型文本可以包含无限制的字符.
我正在使用postgresql-9.1.
这个表是使用Django 1.4生成的,模型中的字段类型是TextField,如果这有助于进一步解释问题.
任何想法为什么会发生这种情况以及我可以做些什么来解决它?
我对django比较新.我已经定义了我的数据库模式并验证了它没有错误(manage.py验证报告找到0错误).
然而,当我运行./manage.py syncdb时
我得到以下堆栈跟踪:
Creating table demo_foobar_one
Creating table demo_foobar_two
<snip>...</snip>
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/usr/local/lib/python2.6/dist-packages/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 191, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 218, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 347, in handle
return self.handle_noargs(**options)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/commands/syncdb.py", line 103, in handle_noargs
emit_post_sync_signal(created_models, verbosity, interactive, db)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/sql.py", line 185, in emit_post_sync_signal
interactive=interactive, …Run Code Online (Sandbox Code Playgroud) 我正在尝试将条带(计费服务)公司ID [大约200个字符左右]保存到我的Django数据库中.
具体错误是:
database error: value too long for type character varying(4)
Run Code Online (Sandbox Code Playgroud)
如何让Django允许更长的值?
我看到: 类型字符变化(N)的值太长, 并且: Django fixture失败,说明"DatabaseError:类型字符变化的值太长(50)"
根据我的webhost,我的数据库已经编码为UTF-8.
编辑:我看到一个答案建议扩大列.这是否涉及修改PostgreSQL数据库?
我的具体系统是Webfaction,CentOs共享机器,在PostgreSQL上运行的Django.我非常感谢对概念进行了概述,以及如何解决这个问题.