Почему вы получаете сообщение `сторона множества "многие ко многим" запрещена. Используйте ....set() вместо этого` в django-pytest?
Я изучаю django - pytest.
Я читаю форум, но не нахожу ответа. Пожалуйста, помогите мне.
Задача: создать тест для api запроса (django-pytest).
Я использую две основные библиотеки:
- Модель пекарни .
- Pytest-Django , и другие классы, это API Client, random.
Модель 'Course'
имеет отношение many-to-many
Я генерирую содержимое для базы данных через - 'Model Bakery' и после вставки при заполнении базы данных
Но я не могу понять
Когда я запускаю тест, я получаю ошибку
short test summary info
FAILED tests/students/test_courses_api.py::test_example - TypeError: Direct assignment to the
forward side of a many-to-many set is prohibited. Use student.set() instead.
1 failed, 1 warning in 9.86s
Почему я получаю сообщение side of a many-to-many set is prohibited. Use student.set() instead
?
Что я сделал не так, если в документации написано о make_m2m=True
:
По умолчанию Model Bakery не создает связанные экземпляры для отношений "многие-ко-многим". Если вы хотите, чтобы они были созданы, вы должны включить его следующим образом:
@pytest.mark.django_db()
def test_example(
name_stude = get_name_random, # the example is down
title = get_courses_random,
username = getUser, # the example is down
api_client = api_client # the example is down
):
#Arrange
student = baker.make(
"students.Student",
name = name_stude,
# _quantity = 3,
)
title_course = baker.make(
"students.Course",
name = title,
)
Student.objects.create(
name=student.name,
)
Course.objects.create( # has many-to-many
student = username,
name = title_course.name,
make_m2m=True
)
#Act
api_client = APIClient()
response = api_client.get('/courses/')
# Accert
assert response.status_code
data = response.json()
assert data
def get_courses_random():
name = random.choice(
[
"...",
"...",
"...",
]
)
return name
@pytest.fixture
def getUser():
return User.objects.create_user('admin')
def api_client():
return APIClient()
и еще один вопрос.
Какой код для промежуточной таблицы/модели в django-pytest ?
Спасибо за помощь