To retrieve data from django database and display in table

41,534

I got the answer. It is working fine now.

Views.py:

def displaytrans(request):
    TransType.objects.all()
    info = TransType.objects.all()
    info2 = Trans.objects.all()
    print info
    bookdata = { "detail" : info, "details" : info2 }
    print bookdata
    resp =  render_to_response("account/displaytrans.html", bookdata, context_instance=Context(request))
    return resp

displaytrans.html:

<!doctype html>
<html>
  <body>

    <table border="1" style="width:800px">
      <tr>
        <td>  {% for s in details %} </td>
        <td>   {{ s.script }} </td>
      </tr>
      <tr> 
        <td>   {{ s.transtype_id}} </td>
        {% endfor %} 
      </tr>         
    </table>
  </body>
</html>

url.py:

url(r'^displaytrans/$', 'booki.account.views.displaytrans', name='displaytrans'),   
Share:
41,534
user1862399
Author by

user1862399

Updated on November 05, 2020

Comments

  • user1862399
    user1862399 over 3 years

    I am trying to retrieve data from db in django. I want to display it in a table. I am getting an error as:\

    coercing to Unicode: need string or buffer, TransType found

    There are two models in my Models.py file:

    class TransType(models.Model):
      name = models.TextField()
      created = models.DateTimeField(auto_now_add = True)
      updated = models.DateTimeField(auto_now = True) 
      def __unicode__(self):
          return self.name
    
    class Trans(models.Model):
      transtype = models.ForeignKey(TransType)
      script = models.CharField(max_length=200)
      created = models.DateTimeField(auto_now_add = True)
      updated = models.DateTimeField(auto_now = True) 
      class Meta:
            unique_together = (("transtype", "script"),)
      def __unicode__(self):
          return self.transtype`
    

    My views.py file

    def updatetrans(request):
      json_data=open('/home/ttt/Ali/a.json').read()
      data = json.loads(json_data)
      for pk, pv in data.iteritems():
            for k,v in pv.iteritems():
                  try:
                        trans_type = TransType.objects.get_or_create(name=k)
                        trans = Trans()
                        trans.transtype_id = trans_type[0].id
                        if isinstance(pv[k], basestring):
                              script = pv[k]
                        else:
                              print "****** List ****"
                              script = pv[k][1]
                        trans.script = script
                        trans.save()
                        print " Inserted ==>", script
                  except Exception, e:
                        print e
                        #print "Not inserted ==>", pv[k][1]
                        pass
      #return HttpResponse("Done")
      info = TransType.objects.all()
      info2 = Trans.objects.all()
      bookdata = { "details" : info, "details" : info2 }
      print bookdata
      return render_to_response("account/updatetrans.html", bookdata, context_instance=Context(request))
    

    My url.py file

    url(r'^updatetrans/$', 'booki.account.views.updatetrans', name='updatetrans'),
    

    My updatetrans.html file

    {% load i18n %}
    <!doctype html>
    <html>
    <body>
    
    <button type="button" onclick="alert('Hello world!')">Click Me!</button>
    <table border="1" style="width:800px">
    <tr><td>    
      {% for s in details %}
            {{ s.script }}
      {% endfor %} 
    </td> 
    <td>     
      {% for n in detail %}
            {{ n.name }}
      {% endfor %} 
    </td> 
    
    </tr>
    
    </table>
    </body>
    </html>
    

    Plz help....

    Traceback

    Environment: Request Method: GET

    enter code here
    
    
    Django Version: 1.3
    Python Version: 2.7.3
    Installed Applications:
    ['django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.sites',
     'django.contrib.admin',
     'django.contrib.messages',
     'south',
     'booki.editor',
     'booki.account',
     'booki.reader',
     'booki.portal',
     'booki.messaging',
     'sputnik',
     'booktypecontrol']
     Installed Middleware:
     ('django.middleware.common.CommonMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.locale.LocaleMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.middleware.transaction.TransactionMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware')
    
     Traceback:
     File "/home/ttt/abc_booktype/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 111. response = callback(request, *callback_args, **callback_kwargs)
    
     File "/home/ttt/abc_booktype/Booktype/lib/booki/account/views.py" in updatetrans 808.print bookdata
    
     File "/home/ttt/abc_booktype/local/lib/python2.7/site-packages/django/db/models/query.py" in __repr__72. return repr(data)
    
     File "/home/ttt/abc_booktype/local/lib/python2.7/site-packages/django/db/models/base.py" in __repr__370. u = unicode(self)
    
     Exception Type: TypeError at /accounts/updatetrans/
     Exception Value: coercing to Unicode: need string or buffer, TransType found