Django将变量传递给表单

时间:2018-11-08 20:32:05

标签: django django-forms

我正在尝试将主键变量直接传递到表单(外键)中,以便用户不必选择它。这就是我所拥有的:

我有一个HTML按钮

<a href="{% url 'addfraction' pk=botany.botany_id %}" class="btn btn-primary" role="button">Add Fraction</a>

它通过urls.py传递植物学表格的主键(botany_id)

url(r'^addfraction/(?P<pk>\d+)/$', views.addfraction, name='addfraction'),

pk进入def addfraction

def addfraction(request, pk):
    if request.method == "POST":
        form = FractionForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.save()
            return redirect('allbotany')
    else:
        form = FractionForm()
    return render(request, 'fraction/create_fraction.html', {'form': form})

并将表单中的数据保存到数据库中。

class FractionForm(forms.ModelForm):
    class Meta:
        model = Fraction
        fields = (
        #'fraction_id',
        'botany_id',
        'proportion_analysed',
        'soil_volume',
        'sample_volume',
        'sample_weight',
        )

botany_id是一个外键,它成为一个下拉框,需要将其显示为灰色并包含植物学_id pk。我哪里出问题了?任何指针都欢迎。

1 个答案:

答案 0 :(得分:1)

您可以从表单字段中消除append(apNewTask) append(a, b) pSenderTimer.property("trigger") pSenderTimer->property("id") scheduler.runTask(fpSchedulingTask) ,并且可以直接从botany_id中的addfraction函数将其分配给帖子实例,而无需用户参与。

只需在views.py之前添加以下行:

post.save()

希望这就是您想要做的,祝您好运!