홈>
나는
django-model
에 대한 간단한 테스트를 작성하고 있습니다
그리고 나는 단지
assertEqual
를 사용하고 있습니다.
그리고
assertNotEqual
그것을 위해.
이제
BooleanField
를 테스트하는 방법을 완전히 파악하지 못했습니다.
이 경우 나는
model
가
다음과 같은 필드 :
duplicate = models.BooleanField(default=False)
이 테스트를 작성 중입니다. 동일한 지 확인하십시오.
def test_feed_duplicate_create(self):
stefan_feed_duplicate = Feed.objects.get(duplicate='False')
milan_feed_duplicate = Feed.objects.get(duplicate='False')
self.assertEqual(
stefan_feed_duplicate.duplicate, 'False'
)
self.assertEqual(
milan_feed_duplicate.duplicate, 'False'
)
그러나 내가 직면하고있는 오류는 다음과 같습니다.
(venv) vagrant@jessie:/var/www/vhosts/bspotted.net/app$ ./manage.py test --keepdb socialmedia
nosetests socialmedia --verbosity=1
Using existing test database for alias 'default'...
............E....................
======================================================================
ERROR: test_feed_duplicate_create (app.socialmedia.tests.test_feed_model.CommentsTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/var/www/vhosts/bspotted.net/app/socialmedia/tests/test_feed_model.py", line 225, in test_feed_duplicate_create
stefan_feed_duplicate = Feed.objects.get(duplicate='False')
File "/var/www/vhosts/bspotted.net/venv/lib/python3.4/site-packages/django/db/models/manager.py", line 127, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/var/www/vhosts/bspotted.net/venv/lib/python3.4/site-packages/django/db/models/query.py", line 338, in get
(self.model._meta.object_name, num)
socialmedia.models.feed.MultipleObjectsReturned: get() returned more than one Feed -- it returned 2!
----------------------------------------------------------------------
Ran 33 tests in 0.159s
BooleanField
를 테스트하는 올바른 방법이 무엇인지 설명해 줄 수 있습니까?
이 경우? 감사합니다.
-
답변 # 1
-
답변 # 2
milan
에 지정된 선택 항목으로 여러 개체를 선택한 경우가 일반적입니다. . 귀하의 경우 여러 객체가 기준을 충족시킵니다. .get()
예를 들어 단 하나의 결과 만 제공된다고 확신 할 때만 사용해야합니다.duplicate == False
를 사용하여 선택기로.귀하의 경우
get()
를 사용할 수 있습니다id
대신 둘 이상의 결과를 기대할 때. 그러나filter()
객체를 반환하지 않지만get()
. 그러므로 당신은filter()
의 항목을 비교하기 위해 당신의 주장을 조정해야합니다 .QuerySet
관련 자료
- 어떻게 하나의 파일에서 5 개 이상의 txt 파일을 Java로 병합 할 수 있습니까?
- python 3.x - 스크롤 영역 높이가 4000을 넘지 않습니다
- discord - 둘 이상의 명령을 활성화하는 방법
- php - 데이터베이스에서 동시에 두 개 이상의 데이터를 설정하는 방법은 무엇입니까?
- html - jQuery로 두 번 이상 추가
- sql - 다 대 다 관계가있는 둘 이상의 테이블
- mysql - 레코드를 얻지 않기 위해 2 개 이상의 테이블을 왼쪽으로 합치는 방법?
- docker - 하나 이상의 cassandra 노드를 시작할 수 없습니다
- javascript - ExtJS에서 하나 이상의 그리드 필터 유형을 사용하는 방법은 무엇입니까?
- java - SendKeys가 예상보다 많은 키를 보냅니다
- javascript - 포커스가있는 둘 이상의 요소를 찾는 방법
- tcl - 한 번에 둘 이상의 열을 기준으로 행렬을 정렬하는 방법
- 팬더에서 둘 이상의 열을 평균하십시오
- java - JVM이 둘 이상의 가비지 수집기를 사용합니까?
- docker-machine은 두 개 이상의 VM을 만들 수 없습니다
- android studio - 내 앱에 100 개 이상의 이미지를 추가하는 방법
- html - 페이지에서 둘 이상의 슬라이딩 메뉴
- javascript - Highcharts에서 둘 이상의 "dataMax"를 표시하는 방법은 무엇입니까?
- angular - Rxjs 구독이 두 번 이상 트리거됩니다
- javascript - nextconfigjs에 두 개 이상의 플러그인을 추가하는 방법
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- vue.js - axios를 사용하여 서버에 이미지를 업로드하는 방법
- python - 문자열에서 특정 문자 제거
와이즈 비즈
get
의 방법 정확히 1 개의 항목을 반환합니다. 항목을 검색 할 수 없으면 오류가 발생하고 둘 이상의 항목을 검색하면 오류가 발생합니다.하나 이상의 항목을 예상하거나 전혀 항목이 없으면
QuerySet
를 사용해야합니다. 그 자체로filter
를 리턴하는 메소드 .특정한 경우
QuerySet
필드를 기준으로 하나의 항목 만 검색 할 수는 없습니다. . 그것은duplicate
입니다 값이BooleanField
인 항목이 있습니다. 값이True
인 항목 .False
에 대한 특정 항목을 검색해야합니다 그리고stefan
다른 필드를 기반으로합니다.