TypeError: int() argument must be a string or a number, not 'datetime.datetime'
TypeError: int() argument must be a string or a number, not 'datetime.datetime'
我已将 App12/models.py 模块制作为:
from django.db import models
class Question(models.Model):
ques_text=models.CharField(max_length=300)
pub_date=models.DateTimeField('Published date')
def __str__(self):
return self.ques_text
class Choice(models.Model):
# question=models.ForeignKey(Question)
choice_text=models.CharField(max_length=300)
votes=models.IntegerField(default=0)
def __str__(self):
return self.choice_text
然后我运行命令
python manage.py makemigrations App12
python manage.py migrate
然后在问题模型中输入 2 条记录为:
Question.objects.create(ques_text="How are you?",pub_date='timezone.now()')
# and (ques_text="What are you doing?",pub_date='timezone.now()')
然后我意识到 Question 和 Choice 模型应该是外键关系,并在模型代码中取消注释上面的注释语句
当我 运行“python manage.py makemigrations App12
”时,运行 没问题,但在那之后,我得到
"TypeError: int() argument must be a string or a number, not 'datetime.datetime"
当我执行 运行ning "python manage.py migrate" 命令时出错。
谁能帮忙me.How我现在可以在 Choice 模型和 Question 模型之间添加一个外键关系吗?
pub_date
不应该是字符串。按如下方式创建您的对象:
from django.utils import timezone
Question.objects.create(ques_text="How are you?",pub_date=timezone.now())
从您的迁移文件中,您收到此错误是正常的,您正在尝试将日期时间存储在需要为 int 的外键上。
当迁移询问您将为旧的 Choice 行设置哪个值时会发生这种情况,因为需要新的 ForeignKey。
要解决它,您可以更改迁移文件并将 datetime.date... 更改为问题 table 中的有效 ID,如下面的代码所示。或者删除迁移文件并重新运行 ./manage.py makemigrations,这时你会被问到默认值提示一个有效的Question id,而不是datetime。
from future import unicode_literals
from django.db import models, migrations
import datetime
class Migration(migrations.Migration):
dependencies = [ ('App11', '0003_remove_choice_question'), ]
operations = [
migrations.AddField(
model_name='choice',
name='question',
field=models.ForeignKey(default=1, to='App11.Question'), preserve_default=False, ),
]
我已将 App12/models.py 模块制作为:
from django.db import models
class Question(models.Model):
ques_text=models.CharField(max_length=300)
pub_date=models.DateTimeField('Published date')
def __str__(self):
return self.ques_text
class Choice(models.Model):
# question=models.ForeignKey(Question)
choice_text=models.CharField(max_length=300)
votes=models.IntegerField(default=0)
def __str__(self):
return self.choice_text
然后我运行命令
python manage.py makemigrations App12
python manage.py migrate
然后在问题模型中输入 2 条记录为:
Question.objects.create(ques_text="How are you?",pub_date='timezone.now()')
# and (ques_text="What are you doing?",pub_date='timezone.now()')
然后我意识到 Question 和 Choice 模型应该是外键关系,并在模型代码中取消注释上面的注释语句
当我 运行“python manage.py makemigrations App12
”时,运行 没问题,但在那之后,我得到
"TypeError: int() argument must be a string or a number, not 'datetime.datetime"
当我执行 运行ning "python manage.py migrate" 命令时出错。
谁能帮忙me.How我现在可以在 Choice 模型和 Question 模型之间添加一个外键关系吗?
pub_date
不应该是字符串。按如下方式创建您的对象:
from django.utils import timezone
Question.objects.create(ques_text="How are you?",pub_date=timezone.now())
从您的迁移文件中,您收到此错误是正常的,您正在尝试将日期时间存储在需要为 int 的外键上。
当迁移询问您将为旧的 Choice 行设置哪个值时会发生这种情况,因为需要新的 ForeignKey。
要解决它,您可以更改迁移文件并将 datetime.date... 更改为问题 table 中的有效 ID,如下面的代码所示。或者删除迁移文件并重新运行 ./manage.py makemigrations,这时你会被问到默认值提示一个有效的Question id,而不是datetime。
from future import unicode_literals
from django.db import models, migrations
import datetime
class Migration(migrations.Migration):
dependencies = [ ('App11', '0003_remove_choice_question'), ]
operations = [
migrations.AddField(
model_name='choice',
name='question',
field=models.ForeignKey(default=1, to='App11.Question'), preserve_default=False, ),
]