如何测试django中具有外键的模型?

mg2*_*g22 6 python django unit-testing python-3.x django-tests

我正在使用python 3.5和Django 1.10并试图在tests.py中测试我的应用程序,但是出现了一个错误,它说:ValueError: Cannot assign "1": "NewsLetter.UserID" must be a "User" instance.那么如何在这里测试一个fk值?这是代码:

class NewsletterModelTest(TestCase):

    @classmethod
    def setUpTestData(cls):
        #Set up non-modified objects used by all test methods
        NewsLetter.objects.create(NewsLetterID=1, Email='test@test.com', Connected=False,UserID=1)


    class NewsLetter(models.Model):
         NewsLetterID = models.AutoField(primary_key=True)
         Email = models.CharField(max_length=255)
         Connected = models.BooleanField(default=False)
         UserID = models.ForeignKey(User, on_delete=models.CASCADE)
         class Meta:
              db_table = 'NewsLetter'
Run Code Online (Sandbox Code Playgroud)

Arp*_*nki 8

在setupTestData方法中,您必须创建一个User对象,并将其传递给NewsLetter对象的create方法.

@classmethod
def setUpTestData(cls):
    #Set up non-modified objects used by all test methods
    user = User.objects.create(<fill params here>)
    NewsLetter.objects.create(NewsLetterID=1, Email='test@test.com', Connected=False,UserID=user)
Run Code Online (Sandbox Code Playgroud)