如何使用shell测试你的django模型

时间:2017-07-06 19:28:16

标签: python django django-models django-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.

目前,我在用户中将userid设置为“admin”。 我已经尝试了一些事情来解决错误,但由于所有者字段(设置为auth.User的外键),我不断收到某种错误。

任何帮助都将在这里受到赞赏。谢谢!

1 个答案:

答案 0 :(得分:1)

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

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