我在 Jason 的帮助下在 Django 中创建了一个评论页面。
但是当我尝试提交表单时,它返回一个错误page not found
我想向任何人寻求我在代码中犯错的地方
最后试穿的时候
a=ActionGame.objects.get(id=id)
它返回一个错误 id not defined
我请求任何支持,我欢迎任何想法
Action/Views.py
#Add action game description detail function
def action_description(request, description):
description=get_object_or_404(Action_Game,slug=description)
#getting each game reviews
reviews = ActionGameReview.objects.filter(game_name=get_object_or_404(Action_Game, game_name=description))
#getting latest 4 game review
lt_reviews = reviews[:4]
#getting Average Review
avg_rating=ActionGameReview.objects.filter(game_name=get_object_or_404(Action_Game, game_name=description)).aggregate(rating=Avg('rate'))
#game review form
review_form=ActionReviewForm()
context={
'description':description,
'action_ds_random':action_ds_random,
'reviews':reviews,
'lt_reviews':lt_reviews,
'avg_rating':avg_rating,
'review_form':review_form,
}
return render(request, 'Blog/action-description.html', context)
#Add review function
def ajax_add_review(request, descript):
game_review=ActionGameReview.objects.get(game_name=get_object_or_404(Action_Game, game_name=descript))
user=request.user
review = Action_Game.objects.create(
user=user,
game_name=game_name,
subject=request.POST['subject'],
rate=request.POST['rete']
)
context={
'user':user.username,
'subject':request.POST['subject'],
'rate':request.POST['rate'],
}
avg_rating=ActionGameReview.objects.get(game_name=get_object_or_404(Action_Game, game_name=descript)).aggregate(rating=Avg('rate'))
return JsonResponse(
{
'bool': True,
'context': context,
'avg_rating':avg_rating,
}
)
Action/function.js*
console.log("working fine");
$("#commentForm").submit(function(e){
e.preventDefault();
$.ajax({
data: $(this).serialize(),
method: $(this).attr("method"),
url: $(this).attr("action"),
dataType: "json",
success: function(response){
console.log('Saved comment to db..')
}
})
})
Action/url.py
path('action/<slug:description>/',views.action_description, name='action_description'),
#add review
path('ajax-add-review/<slug:descript>/', views.ajax_add_review, name='ajax_add_review'),
Blog/action-description.html
<hr>
.......
<form action="{% url 'ajax_add_review' description.slug %}" method="POST" id="commentForm" class="commentForm">
{% csrf_token %}
......