Django:填充ModelChoiceField

时间:2016-02-16 20:07:22

标签: python django

我一直在搜索,我似乎无法找到正确的答案。

我一直在玩django和我的测试项目,我无法弄清楚如何实现这一点,我试图根据我的观点中的外键动态显示下拉内容

以下是我的示例视图:

def job_display(request):

    job_list = Job_Posting.objects.filter(Publication_Status="A", Available_Slots__gt=0).order_by('-Urgency_Status', '-Date_Modified')
    context = {'job_list': job_list}
    return render(request, 'frontend/home.html', context)

def save_page(request, job_id):
    jreq = get_object_or_404(Job_Posting, fkey=job_id)
    form = application_form(request.POST)
    if request.method == 'POST':
        .....
    else:
        .....
    return render(request, 'frontend/apply.html ... )

我的网址:

urlpatterns = patterns('',
    url(r'^$', views.job_display, name='job_display'),
    url(r'^(?P<job_id>[0-9]+)/apply$', views.save_page, name='save_page'),
)

我的朋友:

class edbackgound(ModelForm):
    COURSE = forms.ModelChoiceField(queryset=Educational_Requirement.objects.all())

我的模特:

class Course_Selection(models.Model):
    Course = models.CharField(max_length=30, unique=True)
    Abbreviation = models.CharField(max_length=100, unique=True)

class Job(models.Model):
    Job_Position = models.CharField(max_length=30, null=True, unique=True)

class Job_Posting(models.Model):
    fkey = models.OneToOneField(Job, verbose_name="Job Positions")
    ....

class Educational_Requirement(models.Model):
    fkey = models.OneToOneField(Job_Posting, verbose_name="Job Positions")
    Ed_req = models.OneToOneField(Course_Selection, verbose_name = 'Educational Requirement')

    def __unicode__(self):
        return self.Ed_req

我的问题是在模型中显示选项,在我的观看中,我可以通过job_list通过save_page获取当前选定的jreqjreq.fkey&#39; Job_position可以得到它ModelChoiceField然后保存我的表格。如何通过我选择的job_list填写表单queryset

如果我的帖子不清楚,请随时评论我的帖子缺少的内容

修改 我发现您可以通过以下视图设置form.fields['COURSE'].queryset = Educational_Requirement.objects.filter(fkey=jreq.fkey_id)

inlineformset_factory

我的问题是我使用for form in myinlineform: form.fields['COURSE'].queryset = Educational_Requirement.objects.filter(fkey=jreq.fkey_id)` 动态生成字段,如果我这样做:

[u'ManagementForm data is missing or has been tampered with']

我提出错误说:DefinitionProvider

1 个答案:

答案 0 :(得分:0)

确保您已在模板中包含内联formset的管理表单:

{{ my_formset.management_form }} 

点击此处了解详情:https://docs.djangoproject.com/en/dev/topics/forms/formsets/#understanding-the-managementform

相关问题