小编Gar*_*nzo的帖子

从Javascript到Django服务器进行查询

我正在尝试为网页添加一些基本的动态功能.如何在客户端使用JavaScript通过服务器端的django访问数据库信息?

我觉得在网页上调用django视图(或其他东西)的JavaScript函数应该很容易,而django视图会向JavaScript函数返回一个值.我不希望JavaScript本身连接到数据库,因为这似乎环绕django(对我来说,这似乎是不正确的).

此外,我希望能够在一个页面上通过JavaScript执行多个数据库请求.一个例子是用于创建发票的网页.发票的每个附加行都需要对数据库进行新查询.然后,根据添加到发票中的产品,需要额外的查询来确定产品的价格.我得到的是动态完成的一个页面内对数据库的多个查询.

基本上,我希望django进行数据库搜索并将信息传递给JavaScript.

javascript django ajax

5
推荐指数
2
解决办法
6184
查看次数

Django - 对管理站点的“添加外键”按钮进行逆向工程

TL;DR(简短概要):

我在自己的项目中重新创建了管理“添加”按钮。但是,当我在父表单上点击“保存”时,它无法识别新的选择元素。

整个故事:

我在我自己的项目中使用了该功能......几乎。我需要帮助弄清楚最后一步。现在,我有一个“+”按钮,单击它,会出现一个弹出窗口,我添加一个新对象,点击保存,弹出窗口关闭,该新项目现在位于我的选择框中并被选中 - 就像管理员一样页。但是,当我在此父表单上单击“保存”时,出现错误,表明我选择了不在列表中的项目。当然,由于页面已重新加载,我的新项目已成为列表的一部分,我只需再次单击“保存”即可。当然,我需要它来节省第一次!

基本设置是调用我的父模型System并调用外键模型Zone。该Zone模型列出了系统有多少个区域(1 个区域、2 个区域、10 个区域等...)

好的,一些代码:

父表单模板中的“添加”链接:

<a href="/systems/zones/new/?popup=1" id="add_id_numZones" onclick="return showAddPopup(this);">Add</a>

在我New_Zone看来,保存新区域后,我检查变量是否popup GET为1,如果是,则返回一个javascript函数。这是视图:

        ...
        if form.is_valid():
            f = form.save(commit=False)
            pk_value = f.numOfZones
            form.save()
            obj = Zone_Info.objects.get(numOfZones=pk_value)
            if isPopup == "1":
                return HttpResponse('<script>opener.closeAddPopup(window, "%s", "%s");</script>' % (escape(pk_value), escape(obj)))
        ...
Run Code Online (Sandbox Code Playgroud)

这是我的 Javascript(大部分是从管理 javascript 复制的:

function html_unescape(text) {
// Unescape a string that was escaped using django.utils.html.escape.
    text = text.replace(/&lt;/g, '<');
    text = text.replace(/&gt;/g, '>'); …
Run Code Online (Sandbox Code Playgroud)

javascript django django-models

5
推荐指数
1
解决办法
2181
查看次数

从 VueJS 应用程序中访问 VuePress 文档?

假设我有一个 VueJS 应用程序,它需要用户登录/验证才能使用我的应用程序。如果我然后使用 VuePress 构建文档并将该文档存放在应用程序中,有没有办法可以从应用程序中链接到文档?

例如:

  • 用户登录我的应用
  • 用户单击我的应用程序中的“文档”按钮
  • 向用户展示了我使用 VuePress 构建的文档
  • 未登录我的应用程序的用户无权访问应用程序内的文档

这可能吗?有谁知道如何实现这一目标?

vuejs2 vuepress

5
推荐指数
0
解决办法
236
查看次数

Django - 无法导入我自己的模型

我有几个Django应用程序,都在一个项目目录中.每个应用程序都有一个models.py包含大量模型的文件.我一直在将模型从一个应用程序导入到另一个应用程序,没有任何问题,特别是创建一个带有外键字段的新模型,指向另一个应用程序中的模型.到目前为止没问题.

我决定创建一个新模型.它有4个ForeignKey字段,每个字段指向不同应用程序中的不同模型.直接前进.但是,当我尝试使用south将架构迁移到数据库时,它告诉我它无法导入我的模型.为什么?!

所以,这是我的新模型:

class Action_Tracker(models.Model):
    dateOfAction = models.DateField(verbose_name = 'Date of Action')
    user = models.CharField(max_length=30, verbose_name = 'Action completed by')
    sys = models.ForeignKey(System, verbose_name='For System')
    wo = models.ForeignKey(Work_Order, verbose_name='Associated WO', blank=True, null=True)
    inv = models.ForeignKey(Invoice, verbose_name = 'Associated Invoice', blank=True, null=True)
    subdT = models.ForeignKey(SUBD_Tracker, verbose_name = 'Associated SUBD Tracker', blank=True, null=True)
    notes = models.TextField(verbose_name='Notes of Action', blank=True, null=True)

    def __unicode__(self):
        return u'%s -- %s' % (self.dateOfAction, self.notes)

    class Meta:
        orering = ['dateOfAction']
Run Code Online (Sandbox Code Playgroud)

在这个models.py …

django django-models database-schema

4
推荐指数
1
解决办法
5716
查看次数

Django - 防止重复记录

我的数据库中有客户记录列表。每年,我们都会为每个客户生成一个工作订单。然后,对于每个工单记录,用户应该能够创建特定于工单的注释。然而,并不是所有的工单都需要注释,只是一些。

现在,我不能简单地note向工作订单添加一个字段,因为有时,我们甚至需要在生成工作订单之前创建注释。有时,此注释特定于 2-3 年内不会发生的工作订单。因此,注释和工单必须是独立的,尽管当它们都存在时它们会“找到”彼此。

好的,情况就是这样。我希望用户能够填写一个非常简单的note表单,其中有两个字段:noteYearnote。因此,他们所做的就是选择一年,然后写下笔记。关键是用户不应该能够为同一个客户在同一年创建两个笔记。

我试图通过确保该客户没有该年的注释来验证该注释。我假设这将通过is_valid表单中的自定义方法来实现,但我不知道如何去做。

这是我到目前为止所尝试的(请注意,我知道这是错误的,它不起作用,但这是我迄今为止的尝试):

请注意,这systemID是我的客户记录

我的型号:

class su_note(models.Model):
    YEAR_CHOICES = (
        ('2013', 2013),        
        ('2014', 2014),        
        ('2015', 2015),        
        ('2016', 2016),        
        ('2017', 2017),        
        ('2018', 2018),        
        ('2019', 2019),        
        ('2020', 2020),        
        ('2021', 2021),        
        ('2022', 2022),        
        ('2023', 2023),        
    )
    noteYear = models.CharField(choices = YEAR_CHOICES, max_length = 4, verbose_name = 'Relevant Year')
    systemID = models.ForeignKey(System, verbose_name = 'System ID')
    note = models.TextField(verbose_name = "Note")

    def __unicode__(self):
        return u'%s | %s | …
Run Code Online (Sandbox Code Playgroud)

django django-validation

4
推荐指数
1
解决办法
4786
查看次数

Django 1.8和令人困惑的"静态文件"

我已经启动了一个新的Django 1.8项目,并试图在开发环境中提供静态文件.我很确定我明确地遵循了文档,但它只是不起作用.

Settings.py

STATICFILES_DIR = (                                                                 
  os.path.join(BASE_DIR, 'static/'),                                                
  BASE_DIR                                                                          
)                                                                                                                                                                 

STATIC_URL = '/static/'                                                             
STATIC_ROOT = '/srv/www/cpm2/static/'    
Run Code Online (Sandbox Code Playgroud)

urls.py:

from django.conf.urls import include, patterns, url 
from django.conf import settings
from django.conf.urls.static import static·
from django.contrib import admin
from django.views.generic import TemplateView

urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)),
    url(r'^test/', TemplateView.as_view(template_name="basics/base.html")),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Run Code Online (Sandbox Code Playgroud)

templates/basics/base.html:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">


    {% load staticfiles %}
    <link href="{% static 'css/bootstrap.css' %}" rel="stylesheet">

  </head>


  <body>
      <h1>Hello, …
Run Code Online (Sandbox Code Playgroud)

django django-staticfiles

4
推荐指数
1
解决办法
3407
查看次数

如何在内联表单集上使用新的 form_kwargs?

在 1.9 中,有一个新form_kwargs 功能允许formset_factory您为formset. 我的问题是,我如何实现同样的目标inlineformset_factory

执行以下操作不起作用:

/* Pseudo code of my actual models */
class Account(models.Model):
    fields here...

class Invoice(models.Model):
    fields here...

class InvoiceLineItem(models.Model):
    account = ForeignKey(Account)
    invoice = ForeignKey(Invoice)
    description = CharField
    amt = DecimalField

/* === End of Pseudo Code === */


# Real code that fails:

InvoiceLineItemFormset = inlineformset_factory(Invoice, InvoiceLineItem, fields=('description', 'account', 'amt'))
accts = Account.objects.filter(fund__pk = self.kwargs['fpk'])
invoice_line_item_form = InvoiceLineItemFormset(form_kwargs={'account':accts})
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

__init__() got an unexpected keyword argument 'account' …
Run Code Online (Sandbox Code Playgroud)

django django-forms

4
推荐指数
1
解决办法
2608
查看次数

Vuex-哪些数据应流经商店?

我明白家商店是以及Vuex的用途,但现在我在想:

“我实际上在商店里放什么?”

我正在建立的SPA处理大量数据。最初,我只是放入“主要”内容。但是,那是错的吗?store实际应否保留SPA的所有数据?如果我在网页上显示数据,那应该流经store吗?

state-management vue.js vuex vuejs2

4
推荐指数
1
解决办法
1537
查看次数

Django - 打印大量文件?

我有一个存储客户端数据的Django应用程序.目前,数据库中只有1,000多个客户端.一年两次,我需要为每个客户打印一份半定制的信件.理想情况下,我希望能够单击按钮/链接,并将整个批次发送到打印机; 我不想为每个字母单击"打印",因为这将是非常耗时的.

我想到的是使用Celery来打印所有文档的过程,但我不知道如何实现.我必须"构建"文档并将其发送到打印机,而无需用户看到这种情况.

我的另一个想法是创建一个包含一页上所有字母的"网页".然后用户可以点击"打印",页面将作为字母集合从打印机中出来.虽然,这看起来很草率.

有任何想法吗?

谢谢

printing django

3
推荐指数
1
解决办法
1034
查看次数

一般编程 - 更改变量名称或只显示名称?

我正在处理即将完成的项目,处理业务的客户信息.在众多变量中,有:main_phone cell_phoneoffice_phone存储客户的各种电话号码.这些变量在整个项目中使用.

客户要求我们将其显示为Phone 1 Phone 2Phone 3不是Main Phone Cell PhoneHome Phone.他们想要这种改变的理由是合理的.

我的问题是,您是否会梳理整个项目并更改所有变量名称(项目中的许多位置)或只是更改变量显示给用户的方式(一个位置),而不是基础变量名称本身?

我觉得后一种选择是糟糕的风格,因为变量名称不再解释存储在该变量中的数据.

你的意见?

谢谢

coding-style

3
推荐指数
1
解决办法
128
查看次数