gpt4 book ai didi

django - 初学者 : Dynamic filtering of foreign key field in Django CreateView form

转载 作者:行者123 更新时间:2023-12-05 07:29:35 29 4
gpt4 key购买 nike

模型:

class Instructional_Cycle(models.Model):
date_started = models.DateField()
date_finished = models.DateField()
standard_tested = models.OneToOneField(Standard, on_delete=models.CASCADE)

class Standard(models.Model):
subject = models.CharField(max_length=14, choices=subjects)
grade_level = models.IntegerField(choices=gradeLevels)
descriptor = models.CharField(max_length=15)
description = models.TextField()
essential_status = models.BooleanField(default=False)

查看:

class CycleCreateView(CreateView):
model = Instructional_Cycle
template_name = 'cycle_new.html'
fields = '__all__'
success_url = reverse_lazy('student_progress:cycles')

模板:

<!-- student_progress/cycle_new.html -->

{% extends 'base.html' %}

{% block content %}
<h1>Add a new instructional cycle:</h1>

<form action="{% url 'student_progress:cycle_new' %}" method="post">
{% csrf_token %}
{{ form.as_p }}
<button name="submit">add cycle</button>
</form>

{% endblock content %}

我在使用此表单时遇到的问题是,选择 Instructional_Cycle.standard_tested 的下拉菜单实际上有 1000 条来自 Standard 的记录。用户无法滚动浏览所有这些并找到他们想要的一条记录。

我需要的是单击链接并按主题或等级级别和/或搜索框过滤下拉列表的方法,类似于通过在 admin.py 中创建自定义管理模型在管理端实现的效果,如下所示:

class StandardAdmin(admin.ModelAdmin):
list_display = ('descriptor', 'description', 'essential_status')
list_filter = ('subject', 'grade_level', 'essential_status')
search_fields = ('descriptor',)
inlines = [MilestoneInLine]

def get_search_results(self, request, queryset, search_term):
queryset, use_distinct = super().get_search_results(request, queryset, search_term)
try:
search_term_as_int = int(search_term)
except ValueError:
pass
else:
queryset |= self.model.objects.filter(age=search_term_as_int)
return queryset, use_distinct

请为这个新手“降低难度”。我刚刚完成了 Django for Beginners 的工作,而我关于这一切如何组合在一起的概念模型仍然充满漏洞。请假设我几乎什么都不知道。谢谢!

最佳答案

页面上的大量响应式工作将要求您熟悉 Javascript、Ajax 等。如果是这种情况,您可以采用多种方法来使用所需的选项刷新表单。

或者,您可以在流程的前一步向用户询问必要的数据,让 Django 首先为您构建正确的表单 overriding the form's default queryset .

关于django - 初学者 : Dynamic filtering of foreign key field in Django CreateView form,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52671058/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com