Django - Commenti

Prima di iniziare, nota che il framework Django Comments è deprecato, a partire dalla versione 1.5. Ora puoi usare la funzionalità esterna per farlo, ma se vuoi ancora usarlo, è ancora incluso nelle versioni 1.6 e 1.7. A partire dalla versione 1.8 è assente ma puoi comunque ottenere il codice su un altro account GitHub.

Il framework dei commenti consente di allegare facilmente commenti a qualsiasi modello nella tua app.

Per iniziare a utilizzare il framework dei commenti Django -

Modifica il file settings.py del progetto e aggiungi 'django.contrib.sites', e 'django.contrib.comments', all'opzione INSTALLED_APPS -

INSTALLED_APPS += ('django.contrib.sites', 'django.contrib.comments',)

Ottieni l'ID del sito -

>>> from django.contrib.sites.models import Site
>>> Site().save()
>>> Site.objects.all()[0].id
u'56194498e13823167dd43c64'

Imposta l'ID che ottieni nel file settings.py -

SITE_ID = u'56194498e13823167dd43c64'

Sincronizza db, per creare tutta la tabella o raccolta dei commenti -

python manage.py syncdb

Aggiungi gli URL dell'app per i commenti a urls.py del tuo progetto -

from django.conf.urls import include
url(r'^comments/', include('django.contrib.comments.urls')),

Ora che abbiamo il framework installato, cambiamo i nostri modelli hello per tenere traccia dei commenti sul nostro modello Dreamreal. Elencheremo e salveremo i commenti per una voce specifica di Dreamreal il cui nome verrà passato come parametro all'URL / myapp / hello.

Modello Dreamreal

class Dreamreal(models.Model):

   website = models.CharField(max_length = 50)
   mail = models.CharField(max_length = 50)
   name = models.CharField(max_length = 50)
   phonenumber = models.IntegerField()

   class Meta:
      db_table = "dreamreal"

ciao vista

def hello(request, Name):
   today = datetime.datetime.now().date()
   daysOfWeek = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
   dreamreal = Dreamreal.objects.get(name = Name)
   return render(request, 'hello.html', locals())

hello.html modello

{% extends "main_template.html" %}
{% load comments %}
{% block title %}My Hello Page{% endblock %}
{% block content %}

<p>
   Our Dreamreal Entry:
   <p><strong>Name :</strong> {{dreamreal.name}}</p>
   <p><strong>Website :</strong> {{dreamreal.website}}</p>
   <p><strong>Phone :</strong> {{dreamreal.phonenumber}}</p>
   <p><strong>Number of comments :<strong> 
   {% get_comment_count for dreamreal as comment_count %} {{ comment_count }}</p>
   <p>List of comments :</p>
   {% render_comment_list for dreamreal %}
</p>

{% render_comment_form for dreamreal %}
{% endblock %}

Infine l'URL di mappatura alla nostra vista ciao -

url(r'^hello/(?P<Name>\w+)/', 'hello', name = 'hello'),

Adesso,

  • Nel nostro modello (hello.html), carica il framework dei commenti con - {% load comments%}

  • Otteniamo il numero di commenti per l'oggetto Dreamreal passato dalla vista - {% get_comment_count per dreamreal as comment_count%}

  • Otteniamo l'elenco dei commenti per gli oggetti - {% render_comment_list per dreamreal%}

  • Visualizziamo il modulo dei commenti predefinito: {% render_comment_form per dreamreal%}

Quando accedi a / myapp / hello / steve otterrai le informazioni sui commenti per la voce Dreamreal il cui nome è Steve. Accedere a quell'URL ti porterà:

Quando pubblichi un commento, verrai reindirizzato alla pagina seguente:

Se vai di nuovo su / miaapp / ciao / steve, vedrai la pagina seguente -

Come puoi vedere, il numero di commenti ora è 1 e hai il commento sotto l'elenco della riga dei commenti.