Django:填充ModelChoiceField

2024-09-28 22:31:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在上下搜索,似乎找不到正确的答案。你知道吗

我一直在玩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 ... )

我的URL:

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

我的问题是在modelform中显示选项,在我的视图中,我可以通过save_pagejreq通过jreq.fkey得到当前选中的job_list,然后保存我的表单。如何通过选定的job_list填充窗体的ModelChoiceField。你知道吗

如果我的帖子不清楚,请随意评论我的帖子所缺少的

编辑 我发现您可以通过如下视图设置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']


Tags: nameformidobjectsmodelsrequestjobrequirement