コード例 #1
0
def add_forum(request):
    # 'belong','parent_id','name','tag','path_list','allow_topic','icon','topic_credit',
    # 'post_credit','visit_level','topic_level','post_level']
    if request.method == 'GET':
        form = ForumForm()
    else:
        if not request.is_ajax():
            pass
        form = ForumForm(request.POST, request.FILES)
        if form.is_valid():
            forum = Forum()
            data = form.cleaned_data
            forum.belong = data['belong']
            forum.parent_id = data['parent_id']
            forum.name = data['name']
            forum.tag = data['tag']
            forum.descr = data['descr']
            forum.content = data['content']
            count = len(forum.parent_id)
            if count == 32:
                forum.count = count
            if forum.parent_id == '0' * 32:
                forum.path_list = ''
            else:
                parent = Forum.objects.get(id=forum.parent_id)
                forum.path_list = parent.path_list + parent.tag + ','
            parents = Forum.objects.filter(
                parent_id=forum.parent_id).aggregate(Max('display_order'))
            if parents['display_order__max']:
                forum.display_order = parents['display_order__max'] + 1
            else:
                forum.display_order = 1
            forum.allow_topic = data['allow_topic']
            forum.icon = data['icon']
            forum.topic_credit = data['topic_credit']
            forum.post_credit = data['post_credit']
            forum.visit_level = data['visit_level']
            forum.topic_level = data['topic_level']
            forum.post_level = data['post_level']
            forum.save()
            # 同时添加默认主题
            subjects = [Subject(name='', color='#000000', forum=forum)]
            subject_list = json.loads(request.POST['subject_list_str'])
            for subject in subject_list:
                subjects.append(
                    Subject(name=subject['name'],
                            color=subject['color'],
                            forum=forum))
            Subject.objects.bulk_create(subjects)
            return HttpResponseRedirect(reverse('choose_bbs'))

    return render_to_response('admin/add_forum.html', {
        'config': config,
        'form': form
    },
                              context_instance=RequestContext(request))
コード例 #2
0
 def create(self, request):
     newF = Forum(name='Test')
     newF.save()
     if not type(request.data) == dict: data = request.data.dict()
     else: data = request.data
     data['owner'] = request.user.pk
     data['forum'] = newF.id
     serializer = NewClassroomSerializer(data=data)
     if serializer.is_valid():
         serializer.save()
         newF.name = serializer.data['name']
         newF.save()
         return Response(serializer.data, status=status.HTTP_200_OK)
     newF.delete()
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)