2017-07-06 82 views
1

我想学习Django并且有一个非常简单的问题,我无法解决。我已经编写我的Django模型为:如何使用shell测试你的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为用户 '管理员'。 我曾尝试做一些事情来解决这个错误,但由于所有者字段(它被设置为auth.User的外键),我不断收到某种错误。

任何帮助将不胜感激。谢谢!

+0

什么让你对这条信息感到困惑?您需要一个实际的用户实例,而不是用户名。 –

+0

@DanielRoseman你是对的。我试过用户实例,但我做错了什么。现在,我明白了,下面的答案也能帮助我。谢谢! – yguw

回答

1

您需要使用实际的用户对象。试试这个

from django.contrib.auth.models import User 
admin = User.objects.get(username='admin') 
d_ = Work.objects.create(owner=admin)