Angular 代码与我的 python django 应用程序配合不佳

2024-03-23

由于某种原因,我无法让我的角度代码与我的 python django 应用程序很好地配合。当我提交页面时,它会将所有空值保存在我的数据库中,并且我的获取响应也无法正常工作,因为没有返回任何内容。任何帮助将不胜感激,我还提供了屏幕截图,以便更好地了解我正在尝试做的事情。

角码

var dim = angular.module('Dim', ['ngResource']); 


dim.config(['$httpProvider', function($httpProvider) { 
    $httpProvider.defaults.xsrfCookieName = 'csrftoken'; 
    $httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken'; 
}]); 

dim.factory("Dim", function ($resource) { 
    return $resource("/_dims.html/:id", { id: '@id' }, { 
        index: { method: 'GET', isArray: true, responseType: 'json' }, 
        update: { method: 'PUT', responseType: 'json' } 
    }); 
}) 


dim.controller("DimController", function ($scope, $http, Dim) { 
    $scope.dims = Dim.index() 

    $scope.addDim = function () { 
        dim = Dim.save($scope.newDim) 

        $scope.dims.push(Dim) 
        $scope.newDim = {} 
    } 

    $scope.deleteDim = function (index) { 

        dim = $scope.dims[index] 
        Dim.delete(dim) 
        $scope.dims.splice(index, 1); 
    } 
}) 

视图.py

def add_dimensions(request): 
  if request.method == 'POST': 
    c_date = datetime.now() 
    u_date = datetime.now() 
    description = request.POST.get('description') 
    style = request.POST.get('style') 
    target = request.POST.get('target') 
    upper_limit = request.POST.get('upper_limit') 
    lower_limit = request.POST.get('lower_limit') 
    inspection_tool = request.POST.get('inspection_tool') 
    critical = request.POST.get('critical') 
    units = request.POST.get('units') 
    metric = request.POST.get('metric') 
    target_strings = request.POST.get('target_strings') 
    ref_dim_id = request.POST.get('ref_dim_id') 
    nested_number = request.POST.get('nested_number') 
    met_upper = request.POST.get('met_upper') 
    met_lower = request.POST.get('met_lower') 
    valc = request.POST.get('valc') 
    sheet_id = request.POST.get('sheet_id') 
    data = {} 
    dim = Dimension.objects.create( 
          description=description, 
          style=style, 
          target=target, 
          upper_limit=upper_limit, 
          lower_limit=lower_limit, 
          inspection_tool=inspection_tool, 
          critical=critical, 
          units=units, 
          metric=metric, 
          target_strings=target_strings, 
          ref_dim_id=ref_dim_id, 
          nested_number=nested_number, 
          met_upper=met_upper, 
          met_lower=met_lower, 
          valc=valc, 
          sheet_id=sheet_id, 
          created_at=c_date, 
          updated_at=u_date) 
    data['description'] = dim.description; 
    data['style'] = dim.style; 
    data['target'] = dim.target; 
    data['upper_limit'] = dim.upper_limit; 
    data['lower_limit'] = dim.lower_limit; 
    data['inspection_tool'] = dim.inspection_tool; 
    data['critical'] = dim.critical; 
    data['units'] = dim.units; 
    data['metric'] = dim.metric; 
    data['target_strings'] = dim.target_strings; 
    data['ref_dim_id'] = dim.ref_dim_id; 
    data['nested_number'] = dim.nested_number; 
    data['met_upper'] = dim.met_upper; 
    data['met_lower'] = dim.met_lower; 
    data['valc'] = dim.valc; 
    data['sheet_id'] = dim.sheet_id; 
    return HttpResponse(json.dumps(data), content_type="application/json",) 

  else: 
      return render(request, 'app/_dims.html')     

url.py

urlpatterns = [ 
    # Examples: 
    url(r'^$', app.views.home, name='home'), 
    url(r'^contact$', app.views.contact, name='contact'), 
    url(r'^about', app.views.about, name='about'), 
    #url(r'^sheet', app.views.sheet, name='sheet'), 
    url(r'^sheet/(?P<customer_id>\w+)$', app.views.sheet, name='sheet_customer'), 
    url(r'^sheet/sheet_form_create.html$', app.views.sheet_form_create, name='sheet_form_create'), 
    url(r'^sheet/sheet_form_create.html/get_work$', app.views.get_work, name='get_work'), 
    url(r'^sheet/(?P<pk>\d+)/sheet_update$', app.views.update_sheet, name='sheet_update'), 
    url(r'^_dims.html$', app.views.add_dimensions, name='dim_update'), 
    url(r'^sheet/(?P<pk>\d+)/delete_sheet$', app.views.delete_sheet, name='sheet_delete'), 
    url(r'^sheet/sheet_form_create.html/_dim$', app.views.add_dimensions, name='dim'), 
    url(r'^_dims.html(?P<pk>\d+)$', app.views.add_dimensions, name='dim'), 
    url(r'^$', app.views.dimtable_asJson, name='dim_table_url'), 
    #url(r^'grid_json/', include (djqgrid.urls)), 

_dims.html

{% block content %} 

  <div class="container" ng-app="Dim"> 
    <h1>Dimensions</h1> 
    <div ng-controller="DimController"> 
      <div class="well"> 
        <h3>Add Dimensions</h3> 
        <form ng-submit="addDim()"> 
          <div class="row"> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.description" placeholder="Description" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.style" placeholder="Style" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.target" placeholder="Target" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.upper_limit" placeholder="Upper Limit" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.lower_limit" placeholder="Lower Limit" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.inspecton_tool" placeholder="Inspection Tool" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.critical" placeholder="Critical" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.units" placeholder="Units" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.metric" placeholder="Metric" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.target_strings" placeholder="Target Strings" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.ref_dim_id" placeholder="Ref Dim Id" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.nested_number" placeholder="Nested Number" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.met_upper" placeholder="Met Upper" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.met_lower" placeholder="Met Lower" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.valc" placeholder="Valc" type="text"></input> 
            </div> 
            <div class="col-xs-6"> 
              <input class="form-control" ng-model="newDim.sheet_id" placeholder="Sheet ID" type="text"></input> 
            </div> 
          </div>     
          <div class="row"> 
            <div class="col-xs-12 text-center"> 
              <br/> 
              <input class="btn btn-primary" type="submit" value="Save Dimension">/</input> {% csrf_token %} 
            </div> 
          </div> 
        </form> 
        <table class="table table-bordered trace-table"> 
          <thead> 
            <tr class="trace-table"> 
              <th class="ts jp" style="border: solid black;">Description</th> 
            </tr> 
          </thead> 
          <tr class="trace-table"> 
            <tr ng-repeat="dim in dims track by $index"> 
              <td class="trace-table" style="border: solid black;">{{ dim.description }}</td> 
            </tr> 
          </tr> 
        </table> 
      </div> 
    </div> 
  </div> 
  <a class="btn btn-danger" ng-click="deleteDim($index)">_</a> 

{% endblock %}. 

正如网络选项卡屏幕截图所示,您发送的是 JSON,而不是表单编码的数据。所以在 Django 中你需要使用json.loads(request.body)以字典形式获取数据,而不是访问request.POST它将永远是空的。

请注意,如果您正在做这样的事情,您几乎肯定应该使用 django-rest-framework,它允许您定义序列化器和反序列化器,自动将模型与 JSON 相互转换,并另外验证提交的数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 代码与我的 python django 应用程序配合不佳 的相关文章

随机推荐

  • 如何在 .ascx 页面中使用 javascript

    如何在 ascx 页面中使用 javascript 您可以将脚本标签添加到标记中 Or use 脚本管理器 http msdn microsoft com en us library system web ui scriptmanager
  • 如何在链接期间替换pthread_create

    我想维护所有正在运行的线程的列表 以及有关每个线程的一些附加信息 在这个answer https stackoverflow com a 3476240 4676150提到可以提供我自己的 pthread create 版本并将程序与其链接
  • 将迷你图添加到表中

    我试图将所有数据处理转移到 Rmarkdown 而不是 SPSS Excel 但不知道如何创建带有附加图表的表格 在 Excel 中 这可以通过 Sparklines 功能来完成 或者像我一样 只需创建一个图表并非常准确地放置它 上表是使用
  • 如何使用 JS/nightwatchjs 并行运行多个测试?

    我可以通过 Nightwatch 并行执行多个测试用例吗 可能吗 我正在寻找 java 中线程能力的能力以并行测试用例执行 另外 你们对于从 Selenium 迁移到 Nightwatch 有何看法 您可以看到并行性的线程 守夜人 http
  • Spring 3 bean实例化顺序

    是否有指定 bean 实例化的顺序 即我希望特定的 bean 在其他 bean 之前实例化 就像启动顺序一样 我正在使用 Spring 3 2 和基于注释的声明方法 If bean A取决于豆子B通过定义
  • 在 R 的数据框中查找相似的行(不重复)

    我有一个超过 800k 行的数据集 示例 id fieldA fieldB codeA codeB 120 Similar one addrs example1 929292 0006 3490 Similar oh addrs examp
  • EF Core 在每次迁移时更新种子数据而不进行更改

    所以我看到我的数据库有这样的用户和角色 public static void SeedUsers this ModelBuilder modelBuilder var roles new new Role Id new Guid 51275
  • IQueryable C# 选择

    这是我的代码 但我需要仅选择要在我的 Datagridview 中显示的列 我需要代码来仅选择某些列 示例 Select t gt t usu Login t gt t usu Login public List
  • github http 克隆返回“您在服务器上运行 git update-server-info 了吗”

    我正在尝试在 Windows 上克隆一个 github 项目 我在防火墙后面 所以无法使用 ssh 跑步 git clone https github com user project git 正在返回https github com us
  • Pandas 数据框将唯一值转换为列名

    我有以下格式的 pandas 数据框 input df gw mac mac val status 0 AC233FC01403 AC233F264A4C 21 Outwards 1 AC233FC015F6 AC233F264A4C 37
  • AngularJs 路由链接中没有主题标签?

    我最近开始学习 AngularJs 进行 Web 开发 到目前为止我很喜欢它 但是 我不太确定在视图之间路由时是否在链接中包含主题标签 我主要关心的是 Google 如何缓存网站上的页面以及链接是否双向工作 即用户是否可以直接单击 www
  • 使用 google test 将类型名和字符串传递给参数化测试

    有没有一种方法可以使用谷歌的测试将类型和字符串传递给参数化测试 我想要做 template
  • mongoskin 只能在 mongodb 1.4 及更早版本上运行吗?

    我正在尝试了解nodejs express 和 mongodb 我正在运行 mongodb v 2 0 6 和最新的 Nodejs 和 Express 并尝试通过 mongoskin 将 Express 应用程序与 mongodb 连接 问
  • caffe全卷积cnn - 如何使用裁剪参数

    我正在尝试为我的问题训练一个完全卷积网络 我正在使用实施https github com shelhamer fcn berkeleyvision org https github com shelhamer fcn berkeleyvis
  • 重复并连接字符串 N 次

    在 Ruby 中 我可以使用以下命令重复字符串 n 次 E G my string 2 gt my stringmy string 在 R 中是否有同样简单的方法来做到这一点 您可以使用replicate or rep replicate
  • 是否有 Ruby 方法来确定同一类的两个实例的所有实例变量是否相等?

    是否有一种 Ruby 方法可以根据两个对象的所有实例变量是否相等来比较它们 该方法的行为类似于此代码 class Coordinates attr reader x y def initialize x y x x y y end end
  • 规范化/标准化 numpy 重新排列

    我想知道规范化 标准化 numpy 的最佳方法是什么recarray是 为了清楚起见 我不是在谈论数学矩阵 而是在谈论一个记录数组 其中还包含例如文本列 例如标签 a np genfromtxt iris csv delimiter dty
  • 使用 Python 套接字连接不同网络上的 2 个设备

    因此 如果有一个客户端和服务器具有各自的动态 IPv4 地址 并且两者都通过 2 个单独的路由器连接到互联网 那么如何让客户端和服务器使用其动态 IPv4 地址和路由器的静态 IPv4 相互连接Python 3 中的地址 一般来说 我对网络
  • System.Drawing - 参数无效

    经过更多测试后 我发现此问题可能是由于图像未及时加载以克隆到位图并显示所致 这可能还是不可能 注意 是的 标题中还有其他与此错误相关的问题 但从一些研究来看 它似乎是一个含糊不清的错误 有许多可能的原因 我没有发现任何与我的情况相同的问题
  • Angular 代码与我的 python django 应用程序配合不佳

    由于某种原因 我无法让我的角度代码与我的 python django 应用程序很好地配合 当我提交页面时 它会将所有空值保存在我的数据库中 并且我的获取响应也无法正常工作 因为没有返回任何内容 任何帮助将不胜感激 我还提供了屏幕截图 以便更