什么是__init__.py一个Python源目录?
我应该在文件中添加Django迁移.gitignore文件吗?
由于迁移冲突,我最近得到了很多git问题,并且想知道我是否应该将迁移文件标记为忽略.
如果是这样,我将如何添加我的应用程序中的所有迁移,并将它们添加到.gitignore文件中?
我知道从Django 1.7我不需要使用South或任何其他迁移系统,所以我只是使用简单的命令 python manage.py makemigrations
但是,我得到的只是这个错误:
You are trying to add a non-nullable field 'new_field' to userprofile without a default;
we can't do that (the database needs something to populate existing rows).
Run Code Online (Sandbox Code Playgroud)
这是models.py:
class UserProfile(models.Model):
user = models.OneToOneField(User)
website = models.URLField(blank=True)
new_field = models.CharField(max_length=140)
Run Code Online (Sandbox Code Playgroud)
有什么选择?
我在模型中拼写错误,现在我的一个列拼写错误了.我想删除数据库中的所有表,修复model.py中的错误,并在模型中使用正确的拼写重新创建数据库.
我试着用在建议这篇文章,但我按照列出存在的命令后,表仍然存在.
有人有快速的方法吗?
这似乎是一个简单的问题,我不确定我做错了什么。例如,如果我想通过更改在 models.py 中的一个类中添加一个新字段:
class FeedBack(models.Model):
feedback = models.CharField(max_length=600)
user = models.ForeignKey(User,default="")
Run Code Online (Sandbox Code Playgroud)
到
class FeedBack(models.Model):
feedback = models.CharField(max_length=600)
email = models.CharField(max_length=100)
user = models.ForeignKey(User,default="")
Run Code Online (Sandbox Code Playgroud)
然后我跑
python manage.py makemigrations
python manage.py 迁移
一切看起来都很好,但实际上并没有在数据库中进行任何更改。尝试查看反馈表时,我收到以下异常:
列 IngressoMonitor_feedback.email 不存在
还在表上使用 psql \d+ 显示尚未添加电子邮件
现在我只能使用 psql 来添加和更改表,但我更喜欢将它写在 models.py 中,因为这对我来说似乎容易得多。
因此,我正在开发应用程序,并在模型中添加了一个slugfield。然后,按照正常进行makemigrations,出现了巨大的红色错误墙。
Traceback (most recent call last):
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\db\backends\utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "C:\Users\Andreas\ReaderProject\lib\site-packages\django\db\backends\sqlite3\base.py", line 337, in execute
return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: no such table: Reader_manga
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\helpers\pycharm\django_manage.py", line 41, in <module>
run_module(manage_file, None, '__main__', True)
File "C:\Users\Andreas\AppData\Local\Programs\Python\Python35-32\lib\runpy.py", line 182, in run_module
return _run_module_code(code, init_globals, run_name, mod_spec)
File "C:\Users\Andreas\AppData\Local\Programs\Python\Python35-32\lib\runpy.py", line 96, in _run_module_code
mod_name, mod_spec, …Run Code Online (Sandbox Code Playgroud) 我目前正在参与一个项目,我正在使用Django 1.7开发版本.我想使用"makemigrations"和"migrate"将我在模型中所做的更改(添加字段,删除模型等)添加到数据库模式中"commmands.I为我的应用程序中的一个模型添加了一个"age"字段.
country = models.CharField(max_length=50, blank=True)
address = models.CharField(max_length=100, blank=True)
postal_code = models.IntegerField(max_length=50, blank=True)
city = models.CharField(max_length=50, blank=True)
phone_no = models.CharField(max_length=25, blank=True)
skype_name = models.CharField('Skype Username',max_length=50, blank=True)
age=models.IntegerField(max_length=25,blank=True)
Run Code Online (Sandbox Code Playgroud)
当我使用"makemigrations"命令时,输出就像---"没有检测到更改".我猜"makemigrations"无法弄清楚对架构所做的更改.任何建议我怎样才能使它工作?