python - Add Django model to new view -


i complete django/python noob trying hack way through existing project. have following model 'category.py':

from django.contrib.auth.decorators import login_required, permission_required django.forms import modelform django.shortcuts import render, redirect django.template import requestcontext django.http import httpresponse refeed.models.category import category refeed.models.story import story import json  class categoryform(modelform):     class meta:         model = category         fields = ('name','category_layout')   @permission_required('refeed.change_category') def list(request):     categories = request.user.account.category_set.all()     return render(request,'category_list.html',{'categories':categories})   @permission_required('refeed.add_category') def create(request):     if request.method == 'post':         form = categoryform(request.post)         if form.is_valid():             category = category(**form.cleaned_data)             category.account = request.user.account              #initialize category unique order             ordered_categories = category.objects.filter(account=request.user.account).order_by("-order")             if ordered_categories:                 category.order = ordered_categories[0].order + 1             else:                 category.order = 0              category.save()             return redirect('/categories')     else:         form = categoryform()      return render(request,'basic_form.html',{'form':form},context_instance=requestcontext(request))  @permission_required('refeed.add_category') def create_ajax(request):     cats = request.user.account.category_set.all().values('pk', 'name')     cats = [dict(c) c in cats]      rdata = json.loads(request.body)     category_name = rdata.get('category', '')     if not category_name:         raise exception('no name specified')     category = category(name=category_name)     category.account = request.user.account      #initialize category unique order     ordered_categories = category.objects.filter(account=request.user.account).order_by("-order")     if ordered_categories:         category.order = ordered_categories[0].order + 1     else:         category.order = 0      category.save()      cats = request.user.account.category_set.all().values('pk', 'name')     cats = [dict(c) c in cats]      return httpresponse(json.dumps({'status':'success', 'cats':cats, 'newid':category.pk}), mimetype='application/json')   @permission_required('refeed.change_category') def edit(request,id):     category = category.objects.get(pk=id)     if request.method == 'post':         form = categoryform(request.post,instance=category)         if form.is_valid():             form.save()             return redirect('/categories')     else:         form = categoryform(instance=category)      return render(request,'basic_form.html',{'form':form},context_instance=requestcontext(request))   @permission_required('refeed.delete_category') def delete(request,id):     category = category.objects.get(pk=id)     story.objects.filter(category=category).update(category=none)     category.delete()     return redirect('/categories')    @login_required def sort_categories(request):     #issue = get_object_or_404(issue,account=request.user.account,pk=id,active=true)     index,category_id in enumerate(request.get.getlist('categories[]')):         category = category.objects.filter(pk=category_id)[0]         if category:             category.order = index             category.save()      return httpresponse('') 

this model looped through on 'category_list.html' template so:

{% extends "master.html" %}  {% block content %}  <h1>all categories</h1>  <table class="table table-striped" id="categories_container">     <thead>         <tr>             <th>name</th>       <th>layout</th>             <th>primary color</th>             <th>actions</th>         </tr>     </thead>     <tbody>         {% category in categories %}         <tr id="categories_{{category.id}}" data-id="{{category.id}}">             <td>{{category.name}}</td>       <td>{{category.category_layout.name}}</td>             <td><div class="primary_color" style="background: {{category.primary_color}}; width:10px; height:10px; display:inline-block;"></div> {{category.primary_color}}</td>             <td>                 {% if perms.refeed.change_category %}                 <a href="{% url 'refeed.views.categories.edit' category.id %}"/><i class="icon-pencil"></i></a>                 {%endif %}                 {% if perms.refeed.delete_category %}                 <a onclick="return confirm('are sure delete category?');" href="{% url 'refeed.views.categories.delete' category.id %}"/><i class="icon-trash"></i></a>                 {% endif %}                 {% if perms.refeed.change_category %}                 <i style="cursor:move;" class="icon-resize-vertical"></i></td>                 {% endif %}             </td>         </tr>         {%empty%}         <tr><td colspan="2">no categories</td></tr>         {%endfor%}     </tbody> </table>  {% if perms.refeed.add_category %} <a href="{% url 'refeed.views.categories.create' %}" class="btn">create new category</a> {% endif %}  {% endblock %} 

what want seems pretty simple cannot work. want use same loop on different template, adding cateogory table template titled 'account_view.html'. have pointers?


Comments