相关疑难解决方法(0)

使用Ajax动态地将表单添加到Django formset

我想使用Ajax自动将新表单添加到Django表单集中,这样当用户单击"添加"按钮时,它会运行JavaScript,向页面添加一个新表单(它是表单集的一部分).

django ajax

253
推荐指数
8
解决办法
7万
查看次数

Django ModelForm for Many-to-Many字段

考虑以下模型和形式:

class Pizza(models.Model):
    name = models.CharField(max_length=50)

class Topping(models.Model):
    name = models.CharField(max_length=50)
    ison = models.ManyToManyField(Pizza, blank=True)

class ToppingForm(forms.ModelForm):
    class Meta:
        model = Topping
Run Code Online (Sandbox Code Playgroud)

当你查看ToppingForm时,它可以让你选择浇头上的披萨,一切都只是花花公子.

我的问题是:如何定义一个ModelForm for Pizza,让我可以利用Pizza和Topping之间的多对多关系,让我选择Toppings在Pizza上的内容?

python django django-forms

71
推荐指数
3
解决办法
7万
查看次数

你会如何在Django中制作动态的formset?

这是我做的方式:

{{ formset.management_form }}
<table>
    {% for form in formset.forms %}
        {{ form }}
    {% endfor %}
</table>
<a href="javascript:void(0)" id="add_form">Add Form</a>   
Run Code Online (Sandbox Code Playgroud)

这是JS:

var form_count = {{formset.total_form_count}};
$('#add_form').click(function() {
    form_count++;
    var form = '{{formset.empty_form|escapejs}}'.replace(/__prefix__/g, form_count);
    $('#forms').append(form)
    $('#id_form-TOTAL_FORMS').val(form_count);
});
Run Code Online (Sandbox Code Playgroud)

特别困扰我的是我必须自己编写escapejs模板标签.它只是删除所有换行符并转义任何单引号,这样它就不会弄乱我的字符串.但Django制造商到底希望我们在这种情况下做些什么呢?为什么他们有这个TOTAL_FORMS隐藏的领域,当他们刚刚使用了一个数组<input name="my_form_field[0]" />然后计算它的长度?

javascript django formsets

18
推荐指数
1
解决办法
2万
查看次数

标签 统计

django ×3

ajax ×1

django-forms ×1

formsets ×1

javascript ×1

python ×1