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
Post a Comment