TestCase не работает, но api работает нормально
Я все еще изучаю django, но столкнулся с проблемой, о которой не смог найти ничего в интернете. Я был занят написанием тестов для своих CBV, но теперь столкнулся с этой странной проблемой
specs: Python 3.10 django 4.0.4 drf 3.13.1
У меня есть модель с 2 полями foreignkey, вы можете увидеть ее ниже.
Моя проблема в том, что когда я запускаю код и тестирую с помощью drf-yasg swagger, он запускается без каких-либо проблем, но мой тест продолжает терпеть неудачу. конкретно test_get_good()
В трассировке говорится: AttributeError: 'ArticleLocation' object has no attribute 'article_name' но страница swagger делает все без проблем, и с помощью postman я также не получил ошибку вообще.
Может кто-нибудь объяснить мне, где это идет не так, поскольку я этого не вижу.
class Slotting(ICSBaseMixin):
# database fields
article = models.OneToOneField(
"ics_stock.Article",
on_delete=models.SET_NULL,
related_name="slotting",
null=True
)
article_location = models.OneToOneField(
"ics_stock.ArticleLocation",
on_delete=models.SET_NULL,
null=True,
related_name="slotting"
)
def __str__(self):
return str(self.record_id)
class Meta:
db_table = "ICS_Stock_Slotting"
verbose_name = "Slotting"
verbose_name_plural = "Slottings" # noqa
и мои сериализаторы:
from rest_framework import serializers
from ics_stock.models.slotting import Slotting
from ics_stock.models.article import Article
from ics_stock.models.article_location import ArticleLocation
class SlottingOutputSerializer(serializers.ModelSerializer):
class Meta:
model = Slotting
fields = "__all__"
class SlottingArticleOutputSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = (
"record_id",
"article_name",
"article_description",
"article_code",
"article_size_quantity",
"article_size_unit",
"barcode",
"creation_user",
"creation_program",
"creation_date",
"mutation_user",
"mutation_program",
"mutation_date",
)
class SlottingArticleLocationOutputSerializer(serializers.ModelSerializer):
class Meta:
model = ArticleLocation
fields = (
"record_id",
"location_name",
"location_type",
"creation_user",
"creation_program",
"creation_date",
"mutation_user",
"mutation_program",
"mutation_date",
)
class SlottingCreateUpdateSerializer(serializers.ModelSerializer):
class Meta:
model = Slotting
fields = (
"article_location",
"article",
)
class SlottingDetailedOutputSerializer(serializers.ModelSerializer):
article_location = SlottingArticleOutputSerializer(read_only=True)
article = SlottingArticleLocationOutputSerializer(read_only=True)
class Meta:
model = Slotting
fields = "__all__"
мои взгляды:
testcase: