在Django中使用枚举时出现错误ModuleNotFoundError: No module named ‘models’

huangapple go评论95阅读模式
英文:

Using enums in Django with error ModuleNotFoundError: No module named 'models'

问题

我正在尝试在我的单元测试中使用枚举,但当我尝试导入它们时,我遇到了错误。
models.py 中的一部分代码如下:

  1. class SeekingConstants:
  2. MEN = 'Men'
  3. WOMEN = 'Women'
  4. BOTH_MEN_AND_WOMEN = 'Both men and women'

test_user_api.py 中的一部分代码如下:

  1. from models import SeekingConstants
  2. ...
  3. def test_update_user_seeking_choice(self):
  4. """Part 1: Update the seeking choice from nothing"""
  5. payload = {
  6. 'email': 'test@example.com',
  7. 'seeking_choice': SeekingConstants.WOMEN
  8. }
  9. res = self.client.patch(ME_URL, payload)
  10. self.user.refresh_from_db()
  11. self.assertEqual(self.user.email, payload['email'])
  12. self.assertTrue(self.user.seeking_choice, payload['seeking_choice'])
  13. self.assertEqual(res.status_code, status.HTTP_200_OK)
  14. """Part 2: Update an existing seeking choice"""
  15. new_payload = {
  16. 'email': 'test@example.com',
  17. 'seeking_choice': SeekingConstants.BOTH_MEN_AND_WOMEN
  18. }
  19. res = self.client.patch(ME_URL, new_payload)
  20. self.user.refresh_from_db()
  21. self.assertEqual(self.user.email, payload['email'])
  22. self.assertTrue(self.user.seeking_choice, payload['seeking_choice'])
  23. self.assertEqual(res.status_code, status.HTTP_200_OK)

我不确定为什么我不能导入这个枚举,或者我应该如何导入这个枚举。

英文:

I am trying to use enums in my unit tests but I'm getting an error when I try to import them.
An excerpt from models.py:

  1. class SeekingConstants:
  2. MEN = 'Men'
  3. WOMEN = 'Women'
  4. BOTH_MEN_AND_WOMEN = 'Both men and women'

An excerpt from test_user_api.py:

  1. from models import SeekingConstants
  2. ...
  3. def test_update_user_seeking_choice(self):
  4. """Part 1: Update the seeking choice from nothing"""
  5. payload = {
  6. 'email': 'test@example.com',
  7. 'seeking_choice': SeekingConstants.WOMEN
  8. }
  9. res = self.client.patch(ME_URL, payload)
  10. self.user.refresh_from_db()
  11. self.assertEqual(self.user.email, payload['email'])
  12. self.assertTrue(self.user.seeking_choice, payload['seeking_choice'])
  13. self.assertEqual(res.status_code, status.HTTP_200_OK)
  14. """Part 2: Update an existing seeking choice"""
  15. new_payload = {
  16. 'email': 'test@example.com',
  17. 'seeking_choice': SeekingConstants.BOTH_MEN_AND_WOMEN
  18. }
  19. res = self.client.patch(ME_URL, new_payload)
  20. self.user.refresh_from_db()
  21. self.assertEqual(self.user.email, payload['email'])
  22. self.assertTrue(self.user.seeking_choice, payload['seeking_choice'])
  23. self.assertEqual(res.status_code, status.HTTP_200_OK)

在Django中使用枚举时出现错误ModuleNotFoundError: No module named ‘models’

I'm not sure why I can't import this enum or how I should import this enum.

答案1

得分: 1

根据你的截图:

  1. from ..models import SeekingConstants
英文:

according to your screenshot:

  1. from ..models import SeekingConstants

huangapple
  • 本文由 发表于 2023年6月2日 04:57:39
  • 转载请务必保留本文链接:https://go.coder-hub.com/76385658.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定