我现在正在迁移到Django 1.7。我有一些信号传递一个未保存的模型实例,该实例现在抛出TypeError: Model instances without primary key value are unhashable。
我想知道Django pre_save信号是如何在实例中传递的?我环顾了一下文档,甚至找到了在1.7 ()中实现这个功能的commit,我只是不知道它是如何工作的。
有人能向我解释pre_save是如何绕过这一限制的,还是我自己如何才能克服这一限制?谢谢。
下面是示例代码:
from django.dispatch import Signal
send_text =
尝试将Django-MongoDB开发环境迁移到生产环境
从web界面不断收到以下错误:
ImproperlyConfigured at /
port must be an instance of int
在终端上,如果我运行
python manage.py syncdb
File "/home/user/lib/python-environments/djangomongo/local/lib/python2.7/site-packages/pymongo/connection.py", line 209, in __init__
我得到了以下错误:
TypeError: int() argument must be a string, a bytes-like object or a number, not 'EventCategory'
当尝试应用django创建的迁移时。
由于迁移是自动生成的文件,我尝试的是恢复迁移并再次运行makemigrations,但这没有起作用。
想了解更多情况..。
模型:
class Event(models.Model):
name = models.CharField(max_length=100)
longitue = models.Decimal
问题:
我在我的模型new_field中创建了一个名为"01“的新字段,创建了迁移”01“,其中添加了这个字段。在此之后,我希望更改新迁移“02”中的一些旧字段“old_field”的模型记录。
因此,我创建了迁移"02",它使用RunPython更改我的记录,它可能如下所示:
。
from ..models import MyModel
def update_model():
for record in MyModel.objects.all():
record.new_field = record.old_field
我有一个这样的模型:
from django.db import models
from django.contrib.auth.models import User
class Skill(models.Model):
title = models.CharField(max_length=255)
def __unicode__(self):
return self.title
class UserSkills(models.Model):
user = models.ForeignKey(User)
skill = models.F
我有5个遗留数据库的django应用程序。几乎所有的模型都是使用元属性managed=False设置的。自设置managed=False以来,每个模型的迁移都使用选项managed=False创建。而且,由于django测试运行程序为每个模型选择现有的迁移以在test_databases中创建测试表,所以它根本不创建任何东西。我尝试使用以下方法创建test.py设置文件:
from web_services.settings.dev import *
from django.test.runner import DiscoverRunner
class UnManagedModelTest
我遇到了很有趣的情况。
我需要用一些字段扩展默认django的Group模型。我尝试先使用继承,例如从Group模型继承并更改一些引用,但似乎我无法更改所有所需的引用,因此,这种方式完全破坏了django权限系统。
然后我找到了这样的答案:,guy建议使用field.contribute_to_class()方法。
我已经将此调整放在< myapp >中的模型定义之上。(不要问我为什么需要团队角色,这不是我的想法,我只是需要他们:D)
if not hasattr(Group, 'roles'):
field = models.ManyToManyField
我的单元测试失败,错误如下
django.db.utils.OperationalError: Problem installing fixture '/Users/vivekmunjal/chargepoint/code/Installer/api/installer/fixtures/country.json': Could not load installer.Country(pk=1): (1054, "Unknown column 'display_order' in 'field list'")
基本上,我的一个迁移是
我想要创建一个与用户数据库有ManyToOne关系的模型。
下面是我为该字段使用的代码:
from django.db import models
from django.contrib.auth.models import User
class user_extended(models.Model):
user_ID = models.ManyToOneRel(User)
迁移不起作用。它返回TypeError:
TypeError:init()缺少一个必需的位置参数:'field_name‘
如何与用户数据库建立关系?
我是django的新手,我不明白为什么会发生这种情况。这是我的模型,我已经添加到我的设置“已安装的应用”配置中,并且我已经迁移了它: class User(models.Model):
name = models.CharField(max_length = 200),
state = models.CharField 在shell中,我像这样导入模型: from homepage.models import User 然后,我尝试创建一个新用户,如下所示: a = User(name='Alex', state='Alberta') 它抛出这