Py学习  »  HelloSam  »  全部回复
回复总数  38
8 年前
回复了 HelloSam 创建的主题 » Django ajax post {%csrf_token%}的问题究竟怎么解决?

@Ziv_Luther-weibo 问题已解决,谢谢~~~

8 年前
回复了 HelloSam 创建的主题 » Django ajax post {%csrf_token%}的问题究竟怎么解决?

后来发现,csrftoken问题在<form>标签那里已经出问题了。所以我把<form>标签里的method='POST'去掉,代码如下:

function getModifiedDistrict(id,name){
district_id= id;
district_name= name;
$(".col-md-9").empty();
setupAjax();
var str=" <form class='form-horizontal'>"+
" <div class='form-group'>"+
"   <label for='areaname' class='control-label col-md-2'>校区名</label>"+
"       <div class='col-md-4'>"+
"           <input type='text' value='"+district_name+"' autofocus='autofocus' class='form-control' id='modifyDistrict'/>"+
"       </div>"+
"   </div>"+
" <div class='form-group col-md-2'>"+
"   <input type='submit'  style='margin-left: 329px;' onclick=(modifyDistrict(district_id)) class='btn btn-primary' value='保存修改'>"+
"</div>"+
"</form>";
$(".col-md-9").append(str);

}

function modifyDistrict(id){
district_id= id;
$.ajax({
    url:'setupAjax/updateDistrictActionAjax.action',
    type:'post',
    dataType:'json',
    data:{"district_id":district_id,"district_name":$("#modifyDistrict").val()},
    success:function(result){
        if(result.result=='success')
        alert('修改成功!');
        else alert('修改失败!'+ result.errorMsg);
        $(".tab-pane").empty();
        getModifiedDistrict();
    },
    error:function(){
        alert('服务器错误');
    }
});

}

但是这样达不到ajax向后台请求的效果……我该怎么办?

8 年前
回复了 HelloSam 创建的主题 » ajax post遇到的csrf问题

你好,我最近遇到了这个问题。这个网址进不了。请问该怎么解决? 我的问题的详细描述:http://www.django-china.cn/topic/1500/#

8 年前
回复了 HelloSam 创建的主题 » Django ajax post {%csrf_token%}的问题究竟怎么解决?

@skye212 试了,发现还是不行~我ajax里面是$.ajax(...),而不是$.post(...)

8 年前
回复了 HelloSam 创建的主题 » 怎么用foreignkey 实现Django下拉选择框

@MCC 你好,请问可以帮我解决一下这个问题嘛?http://www.django-china.cn/topic/1500/

9 年前
回复了 HelloSam 创建的主题 » 怎么用foreignkey 实现Django下拉选择框

@MCC 我因为不会把视图函数改写成类的形式,所以要写很多重复的代码(包括前端代码)。所以我想请教你,怎样把一个视图函数改写成 基于类的视图? 比如下面这个函数,该怎么改写成class的形式,在url里as_view就能调用?:

def  addReport(request):
form_context = EnteringForm()
if request.method == 'POST':
    form_context= EnteringForm( request.POST )
    # 这里是增添数据部分
    if form_context.is_valid():
        report_tuple = ReportModel(
            user= request.user.username,
            school= form_context .cleaned_data['school'],
            grade= form_context .cleaned_data['grade'],
            home_location= form_context .cleaned_data['home_location'],
        )
        report_tuple .save()
        form_context= EnteringForm()
    else:
        return HttpResponse(form_context ['user'].errors)
return render_to_response('report_template.html', RequestContext(request,
                                                           locals(),
                                                           )
                          )
9 年前
回复了 HelloSam 创建的主题 » 怎么用foreignkey 实现Django下拉选择框

@MCC 太感谢你了~~~

9 年前
回复了 HelloSam 创建的主题 » 怎么用foreignkey 实现Django下拉选择框

@HelloSam 我觉得不应该是重修save方法。因为save方法一般是在判断is_valid后执行的。如果name一开始没有复制,那么连is_valid的判断也过不了,更别说save。我觉得可能是在判断is_valid之前就赋好值,但是我不知道怎么赋值

9 年前
回复了 HelloSam 创建的主题 » 怎么用foreignkey 实现Django下拉选择框

@MCC 我想请教一个问题:假设我有一个form,它的属性有name, school, grade(三个都是必填项)。我只想让用户输入school, grade,而name在后台自动赋值为现用户的用户名(即request.user.username)。我该在哪里、怎样赋值?

好的~谢谢你的回答。我不会写class型的视图。请问你有 判断request.method,进行不同操作 的类视图的例子吗?我想学习一下~@懵懵懂懂

9 年前
回复了 HelloSam 创建的主题 » Django怎么通过checkbox多选删除数据库数据?

@MCC 请问一下这个 视图函数

def  addreport(request):
pre_report_entering_form = ReportEnteringForm()
if request.method == 'POST':
    pre_report_entering_form = ReportEnteringForm( request.POST )
    # 这里是增添数据部分
    if pre_report_entering_form.is_valid():
        pre_report_entering_form.clean()
        pre_report_entering_form.save( commit = True )
        # pre_report_entering_form在渲染前 清空
        pre_report_entering_form = ReportEnteringForm()
return render_to_response('addreport.html', RequestContext(request,
                                                           {'report_entering_form':pre_report_entering_form}
                                                           )
                          )

怎么修改成为继承TemplateView的类视图? 我写了这样的,但是运行不了:

class AddReportView(TemplateView):
"""
把表单填写数据存入数据库
"""
template_name = 'reportTemplate.html'

def __init__(self):
    report_entering_form = ReportEnteringForm()

def post(self, request):
    report_entering_form = ReportEnteringForm( request.POST )
    # 这里是增添数据部分
    if report_entering_form.is_valid():
        report_entering_form.clean()
        report_entering_form.save( commit = True )
        # pre_report_entering_form在渲染前 清空
        report_entering_form = ReportEnteringForm()

def get_context_data(self, **kwargs):
    context = super(AddReportView, self).get_context_data(**kwargs)
    context['report_entering_form_context'] = report_entering_form
    return context

@mugbya 真的行了!谢谢你的回答

@mugbya 类通用视图 就是把视图函数写成 类的形式吗?

@shen_gan 这样做就很麻烦了,因为有要取一次数据库。请问你找到其他的方法吗?

9 年前
回复了 HelloSam 创建的主题 » Django怎么通过checkbox多选删除数据库数据?

@MCC 你好,我现在遇到一个问题。有一个用户叫A,他没有任何权限,但是他所在的组有一个check权限。我在模板里面用了 这样的语句:

   {% if perms.check %}
        </a> <a href="check"> <span>checkspan>
   {% endif %}

结果是没有反应的。原因可能是perms只对 用户本身设置的权限进行判断,无法对 用户所在组 的权限进行判断。这样做就很麻烦了。我希望是:用户不需要设置权限,只需要把他加进相应的组,然后判断组的权限就OK了。那么在模板语言里,我应该怎么做?

@mugbya 谢谢你的回答

9 年前
回复了 HelloSam 创建的主题 » Django怎么通过checkbox多选删除数据库数据?

@MCC 我现在有一个问题:一个界面需要同时把父模板和子模板都显示出来。父模板和子模板是用两个不同的 视图函数 去渲染的。我想知道怎么能够同时调用 两个视图函数,对父模板和子模板进行渲染,显示在这个这界面中。

9 年前
回复了 HelloSam 创建的主题 » 怎么用foreignkey 实现Django下拉选择框

@MCC 用init成功给表单赋了值,但是django一直说我的表单is not valid。我用shell查看了 这个表单类,发现 只有8 个属性。然后我init里面给这8个属性都赋值了,但是却not valid。请问form is not valid除了 表单没有填写 这种情况外,还会有什么情况吗?

9 年前
回复了 HelloSam 创建的主题 » 怎么用foreignkey 实现Django下拉选择框

@MCC 但我现在这个表单有点复杂。这个表单有两个属性 是由用户输入的;其他属性是直接由 某个模型实例 的属性赋值。所以我必须使用type_form =AccountTypeForm( request.POST ),这样的话还能继续加“initial =……”吗?

9 年前
回复了 HelloSam 创建的主题 » 怎么用foreignkey 实现Django下拉选择框

@MCC 请问怎么把一个 模型的某些属性的值 直接赋给 一个表单的某些属性?我试着直接用“=”号,不行

其中 表2 是继承了 表1的。表1只有a、b两个属性,而表2比表1多了c属性

9 年前
回复了 HelloSam 创建的主题 » 怎么用foreignkey 实现Django下拉选择框

@MCC 这是一个新的问题~希望你能帮我解答哦~~~谢谢

9 年前
回复了 HelloSam 创建的主题 » 怎么用foreignkey 实现Django下拉选择框

@MCC 我现在有这么一张表:第一列和第二列分别是 a属性和b属性,这两个属性是从 数据库 表1中 读取出来的。第三列为 c属性,是需要用户填写内容的一个 表单。功能:用户填写c属性的 表单内容,点击“提交”按钮后,这三个属性的 信息 会存入 数据库的表2。

现在我的 问题是:这张表有很多行,那我应该怎么判断:用户填写哪一行的 表单,我就把哪一行 从表1读取出来的a属性、b属性 存入到表2中? 这需要一个 表1的 id,那么这个id怎么获取?

网上有人说用HiddenInput来实现,请问这个应该怎么实现?

9 年前
回复了 HelloSam 创建的主题 » Djnago如何实现form下拉列表的动态加载?

@liufeily 请问用 foreignkey怎么实现?

9 年前
回复了 HelloSam 创建的主题 » Django怎么通过checkbox多选删除数据库数据?

@MCC 好的 ~~~谢谢分享~按照你这样做,我的 多选删除成功实现了 ~

9 年前
回复了 HelloSam 创建的主题 » Django怎么通过checkbox多选删除数据库数据?

@MCC 按照你的做法,is_checked这个属性一定要包含在模型里面 吗?

9 年前
回复了 HelloSam 创建的主题 » Django怎么通过checkbox多选删除数据库数据?

@shen_gan 谢谢分享~~~

9 年前
回复了 HelloSam 创建的主题 » Django怎么通过checkbox多选删除数据库数据?

听说要通过javascript和ajax来实现~但不知道怎么实现

9 年前
回复了 HelloSam 创建的主题 » Django怎么通过checkbox多选删除数据库数据?

问题还没得到解决,请各位大神帮帮忙~~~

9 年前
回复了 HelloSam 创建的主题 » Django怎么通过checkbox多选删除数据库数据?

@MCC 这样改后,没有成功~会不会是模板那里的 代码错了?应该怎么给checkbox的value赋值???