【问题标题】:dynamic user form field populating with Django使用 Django 填充的动态用户表单字段
【发布时间】:2017-11-28 10:27:43
【问题描述】:

我有一个模型:

class ok(models.Model):
    name = models.CharField(max_length=255)
    project = models.CharField(max_length=255)
    story = models.CharField(max_length=500)
    depends_on = models.CharField(max_length=500, default='')
    rfc = models.CharField(max_length=255)

我有模型表格。

class okForm(ModelForm):
   class Meta:
       model = ok
       fields='__all__'

我从后端 api 调用中获得前 3 个字段:名称、项目、故事。现在我想填充最后两个字段 前三个字段使用 AJAX 调用或 jQuery 或 Javascript 之类的。

我想在用户提交表单之前在前端自动填充 MySQL 数据库的最后两个字段。

【问题讨论】:

  • 您是否有权在您进行后端 API 调用时让后端返回最后 2 个字段?
  • 是的,在从后端调用中获取前三个字段后,我想在前端本身运行一个 mysql 查询以过滤掉最后两个字段,如果存在现有数据,则希望自动填充用户在 mysql 服务器中提交表单和数据存储之前在 mysql 中
  • 恐怕您不想在前端本身运行 MySQL 查询。请用后端 api 调用的结果和前端呈现的表单标记的 sn-p 更新您的问题?

标签: javascript jquery python ajax django


【解决方案1】:

假设您知道如何对您的 Django 应用程序进行 AJAX 调用,它将三个现有值作为请求参数传递,您想在 Django 中编写一个返回最后两个值的 API 视图:

class okAPI(View):
    def get(self, request):
        name = request.GET.get('name')
        project = request.GET.get('project')
        story = request.GET.get('story')
        if name and project and story:
            try:
                obj = ok.objects.get(name=name, project=project, story=story)
                return JsonResponse(data={
                    'depends_on': ok_obj.depends_on,
                    'rfc': ok_obj.rfc}, status=200)
            except ok.DoesNotExist:
                 pass
        return JsonResponse(data={'error': 'bad request'}, status=400)

现在在您的 .done() jQuery 处理程序中,检查状态值,如果它是 200,您可以访问 data.depends_ondata.rfc

【讨论】:

  • 我会尽力让你知道
  • 以及我将如何使用最后三个字段拨打电话,因为用户还没有填写表格。
  • 最后三个字段是什么?您说的是 first 3 个字段,这些字段已经在您的前端(nameprojectstory 您从外部 API 调用收到);您说要根据前 3 个字段从后端获取的最后 2 个字段。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-14
  • 2010-11-04
  • 2011-10-30
  • 1970-01-01
相关资源
最近更新 更多