Sophie

Sophie

distrib > Fedora > 17 > i386 > by-pkgid > b6f82ea76d5134c5709ffcc9dc9e29c5 > files > 423

Django-doc-1.4.5-1.fc17.noarch.rpm


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Upgrading from Django’s previous comment system &mdash; Django 1.4.5 documentation</title>
    
    <link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
    <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../../../',
        VERSION:     '1.4.5',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="../../../_static/jquery.js"></script>
    <script type="text/javascript" src="../../../_static/underscore.js"></script>
    <script type="text/javascript" src="../../../_static/doctools.js"></script>
    <link rel="top" title="Django 1.4.5 documentation" href="../../../index.html" />
    <link rel="up" title="Django’s comments framework" href="index.html" />
    <link rel="next" title="Customizing the comments framework" href="custom.html" />
    <link rel="prev" title="Signals sent by the comments app" href="signals.html" />
 
<script type="text/javascript" src="../../../templatebuiltins.js"></script>
<script type="text/javascript">
(function($) {
    if (!django_template_builtins) {
       // templatebuiltins.js missing, do nothing.
       return;
    }
    $(document).ready(function() {
        // Hyperlink Django template tags and filters
        var base = "../../templates/builtins.html";
        if (base == "#") {
            // Special case for builtins.html itself
            base = "";
        }
        // Tags are keywords, class '.k'
        $("div.highlight\\-html\\+django span.k").each(function(i, elem) {
             var tagname = $(elem).text();
             if ($.inArray(tagname, django_template_builtins.ttags) != -1) {
                 var fragment = tagname.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + tagname + "</a>");
             }
        });
        // Filters are functions, class '.nf'
        $("div.highlight\\-html\\+django span.nf").each(function(i, elem) {
             var filtername = $(elem).text();
             if ($.inArray(filtername, django_template_builtins.tfilters) != -1) {
                 var fragment = filtername.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + filtername + "</a>");
             }
        });
    });
})(jQuery);
</script>

  </head>
  <body>

    <div class="document">
  <div id="custom-doc" class="yui-t6">
    <div id="hd">
      <h1><a href="../../../index.html">Django 1.4.5 documentation</a></h1>
      <div id="global-nav">
        <a title="Home page" href="../../../index.html">Home</a>  |
        <a title="Table of contents" href="../../../contents.html">Table of contents</a>  |
        <a title="Global index" href="../../../genindex.html">Index</a>  |
        <a title="Module index" href="../../../py-modindex.html">Modules</a>
      </div>
      <div class="nav">
    &laquo; <a href="signals.html" title="Signals sent by the comments app">previous</a> 
     |
    <a href="../../index.html" title="API Reference" accesskey="U">up</a>
   |
    <a href="custom.html" title="Customizing the comments framework">next</a> &raquo;</div>
    </div>
    
    <div id="bd">
      <div id="yui-main">
        <div class="yui-b">
          <div class="yui-g" id="ref-contrib-comments-upgrade">
            
  <div class="section" id="s-upgrading-from-django-s-previous-comment-system">
<span id="upgrading-from-django-s-previous-comment-system"></span><h1>Upgrading from Django&#8217;s previous comment system<a class="headerlink" href="#upgrading-from-django-s-previous-comment-system" title="Permalink to this headline">¶</a></h1>
<p>Prior versions of Django included an outdated, undocumented comment system. Users who reverse-engineered this framework will need to upgrade to use the
new comment system; this guide explains how.</p>
<p>The main changes from the old system are:</p>
<ul>
<li><p class="first">This new system is documented.</p>
</li>
<li><p class="first">It uses modern Django features like <a class="reference internal" href="../../../topics/forms/index.html"><em>forms</em></a> and
<a class="reference internal" href="../../../topics/forms/modelforms.html"><em>modelforms</em></a>.</p>
</li>
<li><p class="first">It has a single <tt class="docutils literal"><span class="pre">Comment</span></tt> model instead of separate <tt class="docutils literal"><span class="pre">FreeComment</span></tt> and
<tt class="docutils literal"><span class="pre">Comment</span></tt> models.</p>
</li>
<li><p class="first">Comments have &#8220;email&#8221; and &#8220;URL&#8221; fields.</p>
</li>
<li><p class="first">No ratings, photos and karma. This should only effect World Online.</p>
</li>
<li><p class="first">The <tt class="docutils literal"><span class="pre">{%</span> <span class="pre">comment_form</span> <span class="pre">%}</span></tt> tag no longer exists. Instead, there&#8217;s now two
functions: <tt class="docutils literal"><span class="pre">{%</span> <span class="pre">get_comment_form</span> <span class="pre">%}</span></tt>, which returns a form for posting a
new comment, and <tt class="docutils literal"><span class="pre">{%</span> <span class="pre">render_comment_form</span> <span class="pre">%}</span></tt>, which renders said form
using the <tt class="docutils literal"><span class="pre">comments/form.html</span></tt> template.</p>
</li>
<li><p class="first">The way comments are include in your URLconf have changed; you&#8217;ll need to
replace:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="p">(</span><span class="s">r&#39;^comments/&#39;</span><span class="p">,</span> <span class="n">include</span><span class="p">(</span><span class="s">&#39;django.contrib.comments.urls.comments&#39;</span><span class="p">)),</span>
</pre></div>
</div>
<p>with:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="p">(</span><span class="s">r&#39;^comments/&#39;</span><span class="p">,</span> <span class="n">include</span><span class="p">(</span><span class="s">&#39;django.contrib.comments.urls&#39;</span><span class="p">)),</span>
</pre></div>
</div>
</li>
</ul>
<div class="section" id="s-upgrading-data">
<span id="upgrading-data"></span><h2>Upgrading data<a class="headerlink" href="#upgrading-data" title="Permalink to this headline">¶</a></h2>
<p>The data models for Django&#8217;s comment system have changed, as have the
table names. Before you transfer your existing data into the new comments
system, make sure that you have installed the new comments system as
explained in the
<a class="reference internal" href="index.html"><em>quick start guide</em></a>.
This will ensure that the new tables have been properly created.</p>
<p>To transfer your data into the new comments system, you&#8217;ll need to directly
run the following SQL:</p>
<div class="highlight-sql"><div class="highlight"><pre><span class="k">BEGIN</span><span class="p">;</span>

<span class="k">INSERT</span> <span class="k">INTO</span> <span class="n">django_comments</span>
    <span class="p">(</span><span class="n">content_type_id</span><span class="p">,</span> <span class="n">object_pk</span><span class="p">,</span> <span class="n">site_id</span><span class="p">,</span> <span class="n">user_name</span><span class="p">,</span> <span class="n">user_email</span><span class="p">,</span> <span class="n">user_url</span><span class="p">,</span>
    <span class="k">comment</span><span class="p">,</span> <span class="n">submit_date</span><span class="p">,</span> <span class="n">ip_address</span><span class="p">,</span> <span class="n">is_public</span><span class="p">,</span> <span class="n">is_removed</span><span class="p">)</span>
<span class="k">SELECT</span>
    <span class="n">content_type_id</span><span class="p">,</span> <span class="n">object_id</span><span class="p">,</span> <span class="n">site_id</span><span class="p">,</span> <span class="n">person_name</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="k">comment</span><span class="p">,</span>
    <span class="n">submit_date</span><span class="p">,</span> <span class="n">ip_address</span><span class="p">,</span> <span class="n">is_public</span><span class="p">,</span> <span class="k">not</span> <span class="n">approved</span>
<span class="k">FROM</span> <span class="n">comments_freecomment</span><span class="p">;</span>

<span class="k">INSERT</span> <span class="k">INTO</span> <span class="n">django_comments</span>
    <span class="p">(</span><span class="n">content_type_id</span><span class="p">,</span> <span class="n">object_pk</span><span class="p">,</span> <span class="n">site_id</span><span class="p">,</span> <span class="n">user_id</span><span class="p">,</span> <span class="n">user_name</span><span class="p">,</span> <span class="n">user_email</span><span class="p">,</span>
    <span class="n">user_url</span><span class="p">,</span> <span class="k">comment</span><span class="p">,</span> <span class="n">submit_date</span><span class="p">,</span> <span class="n">ip_address</span><span class="p">,</span> <span class="n">is_public</span><span class="p">,</span> <span class="n">is_removed</span><span class="p">)</span>
<span class="k">SELECT</span>
    <span class="n">content_type_id</span><span class="p">,</span> <span class="n">object_id</span><span class="p">,</span> <span class="n">site_id</span><span class="p">,</span> <span class="n">user_id</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="k">comment</span><span class="p">,</span>
    <span class="n">submit_date</span><span class="p">,</span> <span class="n">ip_address</span><span class="p">,</span> <span class="n">is_public</span><span class="p">,</span> <span class="n">is_removed</span>
<span class="k">FROM</span> <span class="n">comments_comment</span><span class="p">;</span>

<span class="k">UPDATE</span> <span class="n">django_comments</span> <span class="k">SET</span> <span class="n">user_name</span> <span class="o">=</span> <span class="p">(</span>
    <span class="k">SELECT</span> <span class="n">username</span> <span class="k">FROM</span> <span class="n">auth_user</span>
    <span class="k">WHERE</span> <span class="n">django_comments</span><span class="p">.</span><span class="n">user_id</span> <span class="o">=</span> <span class="n">auth_user</span><span class="p">.</span><span class="n">id</span>
<span class="p">)</span> <span class="k">WHERE</span> <span class="n">django_comments</span><span class="p">.</span><span class="n">user_id</span> <span class="k">is</span> <span class="k">not</span> <span class="k">NULL</span><span class="p">;</span>
<span class="k">UPDATE</span> <span class="n">django_comments</span> <span class="k">SET</span> <span class="n">user_email</span> <span class="o">=</span> <span class="p">(</span>
    <span class="k">SELECT</span> <span class="n">email</span> <span class="k">FROM</span> <span class="n">auth_user</span>
    <span class="k">WHERE</span> <span class="n">django_comments</span><span class="p">.</span><span class="n">user_id</span> <span class="o">=</span> <span class="n">auth_user</span><span class="p">.</span><span class="n">id</span>
<span class="p">)</span> <span class="k">WHERE</span> <span class="n">django_comments</span><span class="p">.</span><span class="n">user_id</span> <span class="k">is</span> <span class="k">not</span> <span class="k">NULL</span><span class="p">;</span>

<span class="k">COMMIT</span><span class="p">;</span>
</pre></div>
</div>
</div>
</div>


          </div>         
        </div>
      </div>
      
        
          <div class="yui-b" id="sidebar">
            
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../../../contents.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Upgrading from Django&#8217;s previous comment system</a><ul>
<li><a class="reference internal" href="#upgrading-data">Upgrading data</a></li>
</ul>
</li>
</ul>

  <h3>Browse</h3>
  <ul>
    
      <li>Prev: <a href="signals.html">Signals sent by the comments app</a></li>
    
    
      <li>Next: <a href="custom.html">Customizing the comments framework</a></li>
    
  </ul>
  <h3>You are here:</h3>
  <ul>
      <li>
        <a href="../../../index.html">Django 1.4.5 documentation</a>
        
          <ul><li><a href="../../index.html">API Reference</a>
        
          <ul><li><a href="../index.html"><tt class="docutils literal docutils literal docutils literal docutils literal docutils literal docutils literal docutils literal docutils literal docutils literal docutils literal docutils literal docutils literal docutils literal docutils literal docutils literal"><span class="pre">contrib</span></tt> packages</a>
        
          <ul><li><a href="index.html">Django&#8217;s comments framework</a>
        
        <ul><li>Upgrading from Django&#8217;s previous comment system</li></ul>
        </li></ul></li></ul></li></ul>
      </li>
  </ul>  

  <h3>This Page</h3>
  <ul class="this-page-menu">
    <li><a href="../../../_sources/ref/contrib/comments/upgrade.txt"
           rel="nofollow">Show Source</a></li>
  </ul>
<div id="searchbox" style="display: none">
  <h3>Quick search</h3>
    <form class="search" action="../../../search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    Enter search terms or a module, class or function name.
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
              <h3>Last update:</h3>
              <p class="topless">Feb 21, 2013</p>
          </div> 
        
      
    </div>
    
    <div id="ft">
      <div class="nav">
    &laquo; <a href="signals.html" title="Signals sent by the comments app">previous</a> 
     |
    <a href="../../index.html" title="API Reference" accesskey="U">up</a>
   |
    <a href="custom.html" title="Customizing the comments framework">next</a> &raquo;</div>
    </div>
  </div>

      <div class="clearer"></div>
    </div>
  </body>
</html>