如何使用 shell 测试你的 Django 模型
How to test your django model using shell
我正在尝试学习 Django,但有一个非常简单的问题我无法解决。我将我的 Django 模型编码为:
class Work(models.Model):
STATES = (
('STARTED', 'started'),
('IN_PROGRESS', 'running'),
('FINISHED', 'completed'),
('ERROR', 'Error'),
)
owner = models.ForeignKey("auth.User")
temp = models.CharField(max_length=50, null=True, blank=True)
current_run = models.CharField(max_length=50, null=True, blank=True)
completion_percentage = models.IntegerField(blank=True, null=True)
status = models.CharField(choices=STATES, max_length=50, blank=True, null=True)
我已经重新生成了数据库,现在我想使用它的 Django 视图。但是,在那之前有没有办法使用 python manage.py shell?
来测试它
我正在尝试做:
d_ = Work.objects.create(owner='admin')
我收到错误
ValueError: Cannot assign "'admin'": "Work.owner" must be a "User" instance.
目前,我在用户中的用户 ID 为 'admin'。
我已经尝试做一些事情来解决这个错误,但由于所有者字段(设置为 auth.User 的外键),我不断收到某种错误。
如有任何帮助,我们将不胜感激。谢谢!
您需要使用实际的用户对象。试试这个
from django.contrib.auth.models import User
admin = User.objects.get(username='admin')
d_ = Work.objects.create(owner=admin)
我正在尝试学习 Django,但有一个非常简单的问题我无法解决。我将我的 Django 模型编码为:
class Work(models.Model):
STATES = (
('STARTED', 'started'),
('IN_PROGRESS', 'running'),
('FINISHED', 'completed'),
('ERROR', 'Error'),
)
owner = models.ForeignKey("auth.User")
temp = models.CharField(max_length=50, null=True, blank=True)
current_run = models.CharField(max_length=50, null=True, blank=True)
completion_percentage = models.IntegerField(blank=True, null=True)
status = models.CharField(choices=STATES, max_length=50, blank=True, null=True)
我已经重新生成了数据库,现在我想使用它的 Django 视图。但是,在那之前有没有办法使用 python manage.py shell?
来测试它我正在尝试做:
d_ = Work.objects.create(owner='admin')
我收到错误
ValueError: Cannot assign "'admin'": "Work.owner" must be a "User" instance.
目前,我在用户中的用户 ID 为 'admin'。 我已经尝试做一些事情来解决这个错误,但由于所有者字段(设置为 auth.User 的外键),我不断收到某种错误。
如有任何帮助,我们将不胜感激。谢谢!
您需要使用实际的用户对象。试试这个
from django.contrib.auth.models import User
admin = User.objects.get(username='admin')
d_ = Work.objects.create(owner=admin)