初学者:Django CreateView表单中外键字段的动态过滤
型号: 视图: 模板:初学者:Django CreateView表单中外键字段的动态过滤,django,Django,型号: 视图: 模板: class CycleCreateView(CreateView): model = Instructional_Cycle template_name = 'cycle_new.html' fields = '__all__' success_url = reverse_lazy('student_progress:cycles') 请为这个新手“安静下来”。我刚刚完成了Django初学者版的工作,关于这一切如何结合在一起的概念模型仍然
class CycleCreateView(CreateView):
model = Instructional_Cycle
template_name = 'cycle_new.html'
fields = '__all__'
success_url = reverse_lazy('student_progress:cycles')
请为这个新手“安静下来”。我刚刚完成了Django初学者版的工作,关于这一切如何结合在一起的概念模型仍然充满漏洞。请假定我几乎什么都不知道。谢谢 您应该考虑使用类似django ajax select的东西 一个页面上的大量反应性工作需要您熟悉Javascript、Ajax等。如果是这样,您可以采取多种方法,使用所需的选项刷新表单 或者,您可以在流程的前一步要求用户提供必要的数据,然后让Django首先通过以下步骤为您构建正确的表单
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 %}
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