小编And*_*oni的帖子

根据以前表单上的选择,在表单工具向导中限制Django表单的ManyToManyField查询集

我使用的是SessionWizardViewDjango的formtools构建两个窗体向导.我面临的挑战是我需要引用第一个表单中的输入来限制第二个表单上的可用查询集.

为了使它更有趣,我使用crispy表单进行布局,并且查询集需要受到相关项上的方法的限制.

以下是我所处的(简化)的要点:

楷模

class Product(models.Model):
    # pk, name, etc....
    catalogitem = ForeignKey("myapp.CatalogItem")
    colors = ManyToManyField("myapp.Colors")

class Colors(models.Model):
    # pk, name, etc....

class CatalogItem(models.Model):
    # Colors are stored within CatalogVariants, which I've left
    # as a blackbox in this example, since they are retrieved as
    # a queryset on this model with this method:

    # pk, name, etc....

    def get_colors(self):
        # Returns a queryset of color objects.
Run Code Online (Sandbox Code Playgroud)

查看

ProductFormWizard(SessionWizardView):
    form_list = [
        productFormWizard_Step1,
        productFormWizard_Step2,
    ]

    def …
Run Code Online (Sandbox Code Playgroud)

forms wizard manytomanyfield django-crispy-forms

9
推荐指数
1
解决办法
209
查看次数

从画布动态"卸载"Processing JS草图

我正在使用一些javascript来允许用户使用以下命令动态加载素描到click元素:

Processing.loadSketchFromSources('canvas_id',['sketch.pde']);

如果我将Processing.loadSketchFromSources(...)调用第二个(或第三个......)时间,它会将第二个(或第三个......).pde文件加载到画布上,这正是我所期望的.

我希望用户能够单击另一个链接来加载不同的草图,有效地卸载前一个草图.有没有我可以调用的方法(或者我可以使用的技术)来检查Processing是否有另一个草图运行,如果有,请告诉它先卸载它?

是否有某种Processing.unloadSketch()方法我忽略了?我可以简单地删除画布DOM对象并重新创建它,但是当我需要针时,(1)似乎使用锤子,(2)它会导致我想避免的屏幕闪烁.

我不是JS专家,但我已经尽力查看processing.js源代码,看看其他功能可能存在,但我还是碰壁了.我想也许我可以看看Processing.Sketches.length来查看是否已经加载了某些东西,但只是将它从阵列弹出似乎不起作用(不认为它会).

我正在使用ProcessingJS 1.3.6.

javascript processing processing.js

7
推荐指数
2
解决办法
1508
查看次数