Question

si ont une question - système de réponse, où le formulaire de réponse est incluse dans le modèle de questions, (comme post-commentaires facebook) est-il une autre façon d'enregistrer les commentaires pour toutes les questions? Comment puis-je prendre l'identifiant de la question?

mon code:

{%include "replies/replies.html"%} #thats in the template where questions are listed

la vue save_question

def save_reply(request, id):
   question = New.objects.get(pk = id)
   if request.method == 'POST':
        form = ReplyForm(request.POST)
        if form.is_valid():
           new_obj = form.save(commit=False)
           new_obj.creator = request.user 
           u = New.objects.get(pk=id)
           new_obj.reply_to = u   
           new_obj.save()
           return HttpResponseRedirect('/accounts/private_profile/')    
   else:
           form = ReplyForm()     
   return render_to_response('replies/replies.html', {
           'form': form,
           'question':question, 
           }, 
          context_instance=RequestContext(request))  

et la forme:

<form action="." method="post">
<label for="reply"> Comment </label>
<input type="text" name="post" value="">
<p><input type="submit" value="Comment" /></p>
</form>

Comment puis-je faire de cette forme de travail « intégré » dans le modèle de questions, et comment puis-je faire à « connaître » l'id de la question, il reffers à?

Thx

Était-ce utile?

La solution

dans vos replies.html ont:

<form action="." method="post">
    <input type="hidden" value="{{ in_reply_to_id }}" />
    <label for="reply"> Comment </label>
    <input type="text" name="post" value="">
    <input type="submit" value="Comment" />
</form>

puis dans votre modèle de question:

<div class="question" id="question-{{ question.id }}">
    {{ question.text }}
    {% with question.id as in_reply_to_id %}
        {%include "replies/replies.html" %}  <--- in_reply_to_id is sent to the include
    {% endwith %}
</div>

de cette façon, vos principaux modèles peuvent appeler

<p> questions here! <p>
<div class="question-list">
{% for question in question_list %}
    {% include "questions\question.html" %}
{% endfor %}
</div>

Inclure un peu de magie ContentTypes, et vous pouvez avoir votre réponse des réponses de classe à tout type d'objet, pas seulement des questions!

Autres conseils

Je vous suggère de lire sur les commentaires à http://docs.djangoproject.com/en/1.2/ref/contrib/comments/#ref-contrib-comments-index , lisez spécialement le code dans django / contrib / commentaires de la render_comment_list 'les balises et « render_comment_form », peut-être vous pouvez utiliser le cadre des commentaires tels que les réponses, ce qui rend une lecture « hack » cette partie: http://docs.djangoproject.com/en/1.2/ref/contrib/comments/custom/ .

Une autre façon est dans le ou votre urls.py conf:

(r'^reply/(?P<id>\d+)/$',save_reply),

et dans votre formulaire:

<form action="/reply/{{ question.id }}/" method="post">
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top