Django тестирование ошибок при работе с иностранными ключами в models.py

Я тестирую файл models.py, который содержит два класса, один из которых Farm, а другой Batch

и Batch имеет внешний ключ, связанный с farm

При тестировании партии я проверил все остальные столбцы, но не уверен, как я должен проверить столбец внешнего ключа класса партии

models.py файл lopoks как

и класс, который я сейчас изучаю, это Batch

и тестовый файл пакета выглядит как

from django.test import TestCase
from django.db.utils import IntegrityError
from farm_management.models import Farm, Device, BatchYield, Batch


class TestBatch(TestCase):

    def setUp(self):

        self.batch1 = Batch.objects.create(
            commodity_id="2",
            commodity_variety_id="4",
            acerage="90",
            batch_health="100",
            stage="germination",
            batch_status="running",
            updated_at="2021-11-26 09:27:18.464511",
            created_at="2021-11-26 08:50:26.618932",
            updated_by_id="1224",
            created_by_id="1224",
            #batch_name="(1) Apple | 2021-11-26",
            commodity_name="Apple",
            #start_date="2021-11-26 14:20:14.000000"

        )
        self.farmid = Farm.objects.get(farmer_id="1")

    def test_farm(self):
        self.assertEqual(self.batch1.commodity_id, "2")
        self.assertEqual(self.batch1.commodity_variety_id, "4")
        self.assertEqual(self.batch1.acerage, "90")
        self.assertEqual(self.batch1.batch_health, "100")
        self.assertEqual(self.batch1.stage, "germination")
        self.assertEqual(self.batch1.batch_status, "running")
        self.assertEqual(self.batch1.updated_at, "2021-11-26 09:27:18.464511")
        self.assertEqual(self.batch1.created_at, "2021-11-26 08:50:26.618932")
        self.assertEqual(self.batch1.updated_by_id, "1224")
        self.assertEqual(self.batch1.created_by_id, "1224")
        self.assertEqual(self.batch1.batch_name, "(1) Apple | 2021-11-26")
        self.assertEqual(self.batch1.commodity_name, "Apple")
        self.assertEqual(self.batch1.start_date, "2021-11-26 14:20:14.000000")
        self.assertEqual((self.farmid.farmer_id, "1"))

Но этот код тестирования выдает ошибку

/home/admin123/igrow-api/igrow-api-backend/lib/python3.8/site-packages/storages/backends/s3boto3.py:282: UserWarning: The default behavior of S3Boto3Storage is insecure and will change in django-storages 2.0. By default files and new buckets are saved with an ACL of 'public-read' (globally publicly readable). Version 2.0 will default to using the bucket's ACL. To opt into the new behavior set AWS_DEFAULT_ACL = None, otherwise to silence this warning explicitly set AWS_DEFAULT_ACL.
  warnings.warn(
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
E
======================================================================
ERROR: test_farm (farm_management.test.models.batch.TestBatch)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/admin123/igrow-api/app/farm_management/test/models/batch.py", line 10, in setUp
    self.batch1 = Batch.objects.create(
  File "/home/admin123/igrow-api/igrow-api-backend/lib/python3.8/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/admin123/igrow-api/igrow-api-backend/lib/python3.8/site-packages/django/db/models/query.py", line 453, in create
    obj.save(force_insert=True, using=self.db)
  File "/home/admin123/igrow-api/app/farm_management/models.py", line 179, in save
    super(Batch, self).save(*args, **kwargs)
  File "/home/admin123/igrow-api/igrow-api-backend/lib/python3.8/site-packages/django/db/models/base.py", line 726, in save
    self.save_base(using=using, force_insert=force_insert,
  File "/home/admin123/igrow-api/igrow-api-backend/lib/python3.8/site-packages/django/db/models/base.py", line 774, in save_base
    post_save.send(
  File "/home/admin123/igrow-api/igrow-api-backend/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 180, in send
    return [
  File "/home/admin123/igrow-api/igrow-api-backend/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 181, in <listcomp>
    (receiver, receiver(signal=self, sender=sender, **named))
  File "/home/admin123/igrow-api/app/farm_management/models.py", line 482, in update_batch_count
    instance.farm_id.update_batch_count()
AttributeError: 'NoneType' object has no attribute 'update_batch_count'

----------------------------------------------------------------------
Ran 1 test in 0.527s

FAILED (errors=1)
Destroying test database for alias 'default'...
Вернуться на верх