Главная » 2016 » Март » 19 » Добавление автора и даты комментария
20:53
Добавление автора и даты комментария

Следующее , что я сделал - это отобразил в комментариях кто его добавил и дату комментария.

Для этого необходимо изначально в модели комментариев определить два поля:1 поле автора и 2. поле даты создания комментария.

код класса комментария в модели стал выглядеть так:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from django.db import models
from django.contrib.auth.models import User

# Create your models here.
class Article(models.Model):
 class Meta():
 db_table = 'article'

 article_title = models.CharField(max_length=200)
 article_text = models.TextField()
 article_date = models.DateField()
 article_likes = models.IntegerField(default=0)
 def __unicode__(self):
 return self.article_title

class Comments(models.Model):
 class Meta():
 db_table = 'comments'

 comments_text = models.TextField(verbose_name="Текст комментария")
 comments_date = models.DateField(u'date',auto_now=True)
 comments_article = models.ForeignKey(Article)
 comments_author = models.ForeignKey(User)

После обновления базы данных (или создания ее ) необходимо добавить поля автора и даты в шаблон страницы.Код файла

article.html

 

{% extends 'main.html' %}

{% block article %}

<h4>{{ article.article_date }}</h4>
<h2>{{ article.article_title }}</h2>
<p>{{ article.article_text }}</p>
<hr>
<div class="large-offset-1 large-8 columns">
<p>Комментарии:</p>
<div height="1" style="border-bottom: 1px dotted #000033; "></div>
    {%  for comment in comments %}
    <p>{{ comment.comments_text }}</p>
    <p align="right"> {{ comment.comments_author.username}} -{{comment.comments_date}}</p>
<div height="1" style="border-bottom: 1px dotted #000033; "></div>

    {% endfor %}
    {% if username %}
    <form action="/articles/addcomment/{{ article.id }}/" method="post">
    {% csrf_token %}
    {{ form }}
    <input type="submit" class="button" value="Добавить комментарий">
    </form>
    {% endif %}

 </div>
{%  endblock %}

и добавить в views.py(article) 

def addcomment(request, article_id):
 if request.POST and ("pause" not in request.session):
 form = CommentForm(request.POST)
 if form.is_valid():

 comment = form.save(commit=False)
 comment.comments_author = request.user # ! получить пользователя !
 comment.comments_article = Article.objects.get(id=article_id)


 form.save()
 request.session.set_expiry(60)
 request.session['pause'] = True
 return redirect('/articles/get/%s/' % article_id)

Теперь у нас можно будет увидеть кто и когда добавил комментарий. Следующее, что я сделал - это добавил возможность вставлять картинки и фото на страницу и установил редактор html , но это уже следующая история...

 

Категория: веб - Django | Просмотров: 726 | Добавил: kuzma | Рейтинг: 1.0/1
Всего комментариев: 0
avatar

Программирование игр на Python

Django - создание сайтов с нуля

Javascript - просто используем готовые решения