Пример #1
0
def update_entry(request, app_label, class_name, id):   
    vars = {}

    # Check if theres an valid instance
    try:
        model = get_model(app_label, class_name)
        if model:
            instance = model.objects.get(id=id)
    except ObjectDoesNotExist:
        return HttpResponse(status=404) # No valid instance
        
    # Check if user can edit instance
    if instance.created_by != request.user:
        HttpResponse(status=401) # User not auth
        
        
    # if there any fields to edit
    if not instance.ajax_editable_fields:
        return HttpResponse(status=404) # No field to edit

    
    if request.method == 'GET':

        # Get form
        fields = instance.ajax_editable_fields
        form = update_entry_form( fields, model, instance=instance)
        vars['instance'] = instance
        vars['fields'] = fields
        vars['form'] = form
        vars['action'] = reverse('update_entry', args=[app_label, class_name, id])
    
    if request.method == 'POST':
        fields = instance.ajax_editable_fields
        form = update_entry_form( fields, model, request.POST, instance=instance)

        if form.is_valid():
            form.save()
            
            instance.date_last_changed = datetime.datetime.now()
            instance.save()

            vars['instance'] = instance
            for field in fields:
                vars[field] = getattr(instance,field)
            if request.is_ajax():
                return render(request, 'update_entry_form.html', vars ) 
            return redirect( request.META['HTTP_REFERER'] )
        return HttpResponse(status=401)
        
        
    return render(request, 'update_entry_form.html', vars ) 
Пример #2
0
def update_entry(request, app_label, class_name, id):   
    vars = {}

    # Check if theres an valid instance
    try:
        model = get_model(app_label, class_name)
        if model:
            instance = model.objects.get(id=id)
    except ObjectDoesNotExist:
        return HttpResponse(status=404) # No valid instance
        
    # Check if user can edit instance
    if instance.created_by != request.user:
        HttpResponse(status=401) # User not auth
        
        
    # if there any fields to edit
    if not instance.ajax_editable_fields:
        return HttpResponse(status=404) # No field to edit

    
    if request.method == 'GET':

        # Get form
        fields = instance.ajax_editable_fields
        form = update_entry_form( fields, model, instance=instance)
        vars['form'] = form
    
    if request.method == 'POST':
        fields = instance.ajax_editable_fields
        form = update_entry_form( fields, model, request.POST, instance=instance)

        if form.is_valid():
            form.save()
            return HttpResponse(status=200)
        
        return HttpResponse(status=401)
        
        
    return render(request, 'update_entry_form.html', vars )