【发布时间】:2017-08-10 03:45:46
【问题描述】:
我对 django 很陌生,虽然我的热情我坚持以下:
我有模型
class Task(models.Model):
Taskdetails = models.CharField(max_length=500, null=True)
asset = models.ForeignKey('Asset', null=True)
def __str__(self):
return str(self.id)
我已经使用 ModelForm 技术创建了几个对象
我想创建一个模板,用户可以选择一个资产并通过按下按钮来显示与该资产相关的所有任务。我提到资产有很多任务。我正在尝试使用 Django ModelForm 来做到这一点。
所以,我首先创建了表单
class HistoryForm(ModelForm):
class Meta:
model = Task
fields =('asset',)
然后我创建了“历史”视图,用户可以在其中选择感兴趣的资产:
def history(request):
if request.method == "POST":
hist_form = HistoryForm(request.POST)
if hist_form.is_valid():
hist = hist_form.save(commit=False)
hist.save()
return ('results')
else:
hist_form = HistoryForm()
return render(request, 'TaskTrace/history.html', {'hist_form': hist_form}
html标签(部分)如下
{{ hist_form }}
<p><a href="{% url 'results' %}"> <button type="submit" > Results</button></a></p>
然后我想采取用户做出的选择并将其转移到下一个视图('结果')
def results(request):
tasks = Task.objects.filter(asset=request.POST.get('asset', None))
return render(request, 'Tasktrace/results.html', {'tasks': tasks})
而hmtl模板是
{% for task in tasks %}
<div>
<p><a href=""><u>{{ task }} </a></p>
</div>
{% endfor %}
问题是我没有得到任何任务。我相信我的大问题是将价值从第一个视图转移到另一个视图。
这是在 ModelForms 中进行过滤的正确方法吗?我可能在这里错过了一些东西
非常感谢您的帮助
【问题讨论】:
标签: django django-models django-forms django-queryset