Django : TypeError : 'Like'객체는 반복 할 수 없습니다 (Ajax 요청).

MysticCodes

Model (Like) 개체가 반복 할 수 없다는 명확한 그림을 얻지 못합니다.

오류

liked, created = Like.objects.create(question=create_id)
TypeError: 'Like' object is not iterable

model.py

class Question(models.Model):
    user = models.ForeignKey(User)
    title = models.CharField(max_length= 200)
    description = models.TextField()
    location = models.CharField(max_length=150)
    tags = TaggableManager()
    time = models.DateTimeField(auto_now_add=True)

    def __unicode__(self):
        return self.title


class Like(models.Model):
    user = models.ManyToManyField(User, related_name='likes')
    question = models.ForeignKey(Question)
    date = models.DateTimeField(auto_now_add=True)
    likecount = models.IntegerField(default=0)

urls.py

 url(r'^like/$', 'apps.question.views.like', name='like'),

views.py

def like(request):
    vars = {}
    if request.method == 'POST':
        user = request.user
        tutorial_id = request.POST.get('tutorial_id', None)
        create_id = get_object_or_404(Question, id=tutorial_id)

        liked, created = Like.objects.create(question=create_id)

        try:
            user_liked = Like.objects.get(question=create_id, user=user)
        except:
            user_liked = None

        if user_liked:
            user_liked.likecount -= 1
            liked.user.remove(request.user)
            user_liked.save()
        else:
            liked.user.add(request.user)
            liked.likecount += 1
            liked.save()

    return HttpResponse(simplejson.dumps(vars, user),
                    mimetype='application/javascript')

주형

<button type="button" class="btn btn-request" name="{{question.id}}" id="like">Request</button>

<script>
  $('#like').click(function(){

        $.ajax({
                 type: "POST",
                 url: "{% url 'like' %}",
                 data: {'tutorial_id': $(this).attr('name'), 'csrfmiddlewaretoken': '{{csrf_token}}'},

                 dataType: "text",
                 success: function(response) {
                        alert('You liked this')
                  },
                  error: function(rs, e) {
                        alert(rs.responseText);
                  }
            }); 
      })
  </script>

내가 여기서 놓친 것은 누구든지 나를 설명 할 수 있습니까?

감사!

토마스 오 로스코
Like.objects.create(question=create_id)

단일 객체 (a Like)를 반환합니다 .

따라서 like, created = Like.objects.create(question=create_id)오른쪽에 항목이 하나만 있기 때문에 작업이 작동하지 않으므로 압축을 풀 수 없습니다 (예 :) like, created = 1.

객체와 created부울 객체 를 반환하는 메서드는 다음과 get_or_create같습니다.

like, created = Like.objects.get_or_create(question=create_id)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Django 'logout'TypeError : 'AnonymousUser'개체는 반복 할 수 없습니다.

분류에서Dev

TypeError : 'UniqueConstraint'개체는 Django에서 반복 할 수 없습니다.

분류에서Dev

pyauto gui TypeError : 'int'객체는 반복 할 수 없습니다.

분류에서Dev

TypeError 객체는 반복 할 수 없습니다.

분류에서Dev

TypeError : 'float'유형의 객체에는 len ()이 없습니다. & TypeError : 'float'객체는 반복 할 수 없습니다.

분류에서Dev

Django TypeError : "User"개체는 직렬화 중에 반복 할 수 없습니다.

분류에서Dev

TypeError : sum을 사용할 때 'float'객체는 반복 할 수 없습니다.

분류에서Dev

TypeError : 'Transaction'객체는 Python 3.6의 Flask에서 반복 할 수 없습니다.

분류에서Dev

TypeError : Float 객체는 내 코드에서 반복 할 수 없습니다.

분류에서Dev

TypeError 'bool'객체는 django에서 호출 할 수 없습니다.

분류에서Dev

TypeError : 'NoneType'객체는 반복 할 수 없지만 여전히 목록을 반복하는 것 같습니다.

분류에서Dev

TypeError : 'numpy.bool_'개체는 반복 할 수 없습니다.

분류에서Dev

/ register / 'AnonymousUser'개체의 TypeError는 반복 할 수 없습니다.

분류에서Dev

Python-TypeError : 'NoneType'개체는 반복 할 수 없습니다.

분류에서Dev

TypeError : '외계인'개체는 반복 할 수 없습니다.

분류에서Dev

렌더링하는 동안 TypeError 발생 : 'int'개체는 django 템플릿에서 반복 할 수 없습니다.

분류에서Dev

Matplotlib ArtistAnimation은 TypeError를 제공합니다 : 'AxesImage'객체는 반복 할 수 없습니다.

분류에서Dev

Django Middleware- 'AnonymousUser'개체는 반복 할 수 없습니다.

분류에서Dev

TypeError : 'WindowsPath'유형의 인수는 반복 할 수 없습니다.

분류에서Dev

TypeError : 'Item'유형의 인수는 반복 할 수 없습니다.

분류에서Dev

Python : 데코레이터 + 목록 이해-TypeError : 'int'객체는 반복 할 수 없습니다.

분류에서Dev

Django AssertFormError가 TypeError를 던지는 이유 : 'property'유형의 인수는 반복 할 수 없습니다.

분류에서Dev

'NoneType'개체를 해결할 수 없음은 반복 할 수 없습니다 .TypeError

분류에서Dev

ngrx ERROR TypeError : action.payload는 반복 할 수 없습니다.

분류에서Dev

TypeError : 개체 상태의 변수는 반복 할 수 없습니다.

분류에서Dev

다중 처리 : TypeError : 'int'개체는 반복 할 수 없습니다.

분류에서Dev

오류 : 'float'객체는 반복 할 수 없습니다-Python

분류에서Dev

'super'객체는 반복 할 수 없습니다.

분류에서Dev

NoneType 객체는 반복 할 수 없습니다.

Related 관련 기사

  1. 1

    Django 'logout'TypeError : 'AnonymousUser'개체는 반복 할 수 없습니다.

  2. 2

    TypeError : 'UniqueConstraint'개체는 Django에서 반복 할 수 없습니다.

  3. 3

    pyauto gui TypeError : 'int'객체는 반복 할 수 없습니다.

  4. 4

    TypeError 객체는 반복 할 수 없습니다.

  5. 5

    TypeError : 'float'유형의 객체에는 len ()이 없습니다. & TypeError : 'float'객체는 반복 할 수 없습니다.

  6. 6

    Django TypeError : "User"개체는 직렬화 중에 반복 할 수 없습니다.

  7. 7

    TypeError : sum을 사용할 때 'float'객체는 반복 할 수 없습니다.

  8. 8

    TypeError : 'Transaction'객체는 Python 3.6의 Flask에서 반복 할 수 없습니다.

  9. 9

    TypeError : Float 객체는 내 코드에서 반복 할 수 없습니다.

  10. 10

    TypeError 'bool'객체는 django에서 호출 할 수 없습니다.

  11. 11

    TypeError : 'NoneType'객체는 반복 할 수 없지만 여전히 목록을 반복하는 것 같습니다.

  12. 12

    TypeError : 'numpy.bool_'개체는 반복 할 수 없습니다.

  13. 13

    / register / 'AnonymousUser'개체의 TypeError는 반복 할 수 없습니다.

  14. 14

    Python-TypeError : 'NoneType'개체는 반복 할 수 없습니다.

  15. 15

    TypeError : '외계인'개체는 반복 할 수 없습니다.

  16. 16

    렌더링하는 동안 TypeError 발생 : 'int'개체는 django 템플릿에서 반복 할 수 없습니다.

  17. 17

    Matplotlib ArtistAnimation은 TypeError를 제공합니다 : 'AxesImage'객체는 반복 할 수 없습니다.

  18. 18

    Django Middleware- 'AnonymousUser'개체는 반복 할 수 없습니다.

  19. 19

    TypeError : 'WindowsPath'유형의 인수는 반복 할 수 없습니다.

  20. 20

    TypeError : 'Item'유형의 인수는 반복 할 수 없습니다.

  21. 21

    Python : 데코레이터 + 목록 이해-TypeError : 'int'객체는 반복 할 수 없습니다.

  22. 22

    Django AssertFormError가 TypeError를 던지는 이유 : 'property'유형의 인수는 반복 할 수 없습니다.

  23. 23

    'NoneType'개체를 해결할 수 없음은 반복 할 수 없습니다 .TypeError

  24. 24

    ngrx ERROR TypeError : action.payload는 반복 할 수 없습니다.

  25. 25

    TypeError : 개체 상태의 변수는 반복 할 수 없습니다.

  26. 26

    다중 처리 : TypeError : 'int'개체는 반복 할 수 없습니다.

  27. 27

    오류 : 'float'객체는 반복 할 수 없습니다-Python

  28. 28

    'super'객체는 반복 할 수 없습니다.

  29. 29

    NoneType 객체는 반복 할 수 없습니다.

뜨겁다태그

보관