不更新模板django中的外键字段

时间:2016-08-23 04:50:46

标签: django

我的代码与ForeignKey和Form相关的模型,我尝试在一个页面中显示: 所有报价及其项目,我也想更新这些字段。

模型

class Quote(models.Model):
    number = models.IntegerField(null=False)

class Quote_detail(models.Model):
    quote = models.ForeignKey(Quote)
    stock = models.IntegerField(null=True)

表格

class QuoteForm(forms.ModelForm):

class Meta:
    model = Quote
    fields = '__all__'

查看

def quotes(request):
    cotiFormSet = modelformset_factory(Quote,form=QuoteForm)
    if request.method == 'POST':
        formSet = QuoteForm(request.POST,request.FILES)
        if formSet.is_valid():
            formSet.save()
            return redirect('quotes')
    else:
        formSet = cotiFormSet()
    return render(request,'supplierweb/quotes.html', {'formset':formSet})

模板

{% for item in form.instance.quote_detail_set.all %}
<tr>
    <td>
        <input for={{ item.stock }} value = {{ item.stock }} type="number" />
    </td>
</tr>
{% endfor %}

但是,当我提交此页面时,字段不会更新。谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

forms.py class QuoteForm(forms.ModelForm):     类Meta:         model = Quote_detail#不引用!         fields = ['stock']#或者排除= []如果你需要所有字段 template.html ... {form for formset%}     {%form.as_table%} {%endfor%} ...

答案 1 :(得分:0)

我可以推荐django Girls Tutorial来实现你的表格,因为django可以为你做大部分的工作。

http://tutorial.djangogirls.org/en/django_forms/

您的template.html看起来像这样。您只需要将此模板中使用的更改为您的。

{% block content %}
    <form method="POST" class="post-form">{% csrf_token %}
        {{ form.as_p }}
        <button type="submit" class="save btn btn-default">Save</button>
    </form>
{% endblock %}