Hah*_*n't 2 django django-rest-framework
模型.py:
\n\n class Bookmark(models.Model):\n """Bookmar for a quiz"""\n quiz = models.ForeignKey(\n Quiz,\n on_delete=models.PROTECT,\n verbose_name=\'\xd0\x92\xd0\xb8\xd0\xba\xd1\x82\xd0\xbe\xd1\x80\xd0\xb8\xd0\xbd\xd0\xb0\',\n related_name=\'bookmarks\'\n )\n user = models.ForeignKey(\n settings.AUTH_USER_MODEL,\n on_delete=models.CASCADE,\n verbose_name=\'\xd0\x9f\xd0\xbe\xd0\xbb\xd1\x8c\xd0\xb7\xd0\xbe\xd0\xb2\xd0\xb0\xd1\x82\xd0\xb5\xd0\xbb\xd1\x8c\',\n related_name=\'bookmarks\'\n )\n date = models.DateTimeField(auto_now_add=True, verbose_name=\'\xd0\x94\xd0\xb0\xd1\x82\xd0\xb0 \xd0\xb4\xd0\xbe\xd0\xb1\xd0\xb0\xd0\xb2\xd0\xbb\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f\')\n\n def __str__(self):\n return f\'{self.user} - {self.quiz}\'\nRun Code Online (Sandbox Code Playgroud)\n\n网址.py:
\n\nurlpatterns = [\n path(\'quiz/bookmark/create-remove/<slug:slug>/\', views.CreateRemoveBookmarkAPI,\n name="bookmark-create-remove-api"),\n]\nRun Code Online (Sandbox Code Playgroud)\n\n视图.py:
\n\nclass CreateRemoveBookmarkAPI(APIView):\n """API for create or remove quiz bookmark.\n Get a quiz slug, and create or remove bookmark at it\n """\n permission_classes = (IsAuthenticated,)\n\n def post(self, request, slug):\n quiz = get_object_or_404(Quiz, slug=slug)\n bookmark = Bookmark.objects.filter(quiz=quiz, user=request.user)\n data = {}\n\n if bookmark.exists():\n bookmark.delete()\n data[\'bookmarked\'] = False\n else:\n Bookmark.objects.create(quiz=quiz, user=request.user)\n data[\'bookmarked\'] = True\n\n data[\'bookmarks\'] = quiz.get_bookmarks_count()\n\n return Response(data, status=status.HTTP_200_OK)\nRun Code Online (Sandbox Code Playgroud)\n\n我得到了它:
\n\nInternal Server Error: /api/quiz/bookmark/create-remove/dd-69/\nTraceback (most recent call last):\n File "C:\\Users\\user\\Desktop\\quizapp\\venv\\lib\\site-packages\\django\\core\\handlers\\exception.py", line 34, in inner\n response = get_response(request)\n File "C:\\Users\\user\\Desktop\\quizapp\\venv\\lib\\site-packages\\django\\core\\handlers\\base.py", line 115, in _get_response\n response = self.process_exception_by_middleware(e, request)\n File "C:\\Users\\user\\Desktop\\quizapp\\venv\\lib\\site-packages\\django\\core\\handlers\\base.py", line 113, in _get_response\n response = wrapped_callback(request, *callback_args, **callback_kwargs)\nTypeError: __init__() takes 1 positional argument but 2 were given\n[05/Mar/2020 12:04:33] "POST /api/quiz/bookmark/create-remove/dd-69/ HTTP/1.1" 500 21733\nRun Code Online (Sandbox Code Playgroud)\n\n在前端,我只是发送ajax请求。数据属性为空,因为它不重要。\n我不知道为什么它不起作用。请帮我。
\n您没有as_view()在网址中调用函数
urlpatterns = [
path('quiz/bookmark/create-remove/<slug:slug>/', views.CreateRemoveBookmarkAPI.as_view(),
name="bookmark-create-remove-api"),
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2372 次 |
| 最近记录: |