问题描述
我有一个模型巡视,其中有一个到模型驱动程序的外键,另一个到模型时间表的外键。 django中的嵌入式表单集是基于Driver and Tour表单创建的。
我想根据“时间表”表单中的字段(组日期和时间之后的顺序)过滤表单集-该表单的外键应该是静态的,并且永不更改,因此未在表单中显示。 我无法通过表单访问“时间表”模型中的数据-可以吗?
型号
class TiMetable(models.Model):
route = models.AutoField(primary_key=True)
group = models.CharField(max_length=1,default='')
day = models.DateField(auto_Now=False,auto_Now_add=False)
time = models.TimeField(auto_Now=False,auto_Now_add=False)
class Tour(models.Model):
#FK
driver = models.ForeignKey(User,default=None,on_delete=models.CASCADE)
route = models.ForeignKey(TiMetable,on_delete=models.CASCADE
departed = models.DateTimeField(auto_Now_add=False)
arrived = models.DateTimeField(auto_Now_add=False)
观看次数
@login_required(login_url="/accounts/login/")
def display_all(request):
driver = User.objects.get(username = request.user)
TourFormSet = inlineformset_factory(User,Tour,fields=('departed','arrived'),can_delete =False,extra = 0)
if request.method == 'POST':
formset = TourFormSet(request.POST,request.FILES,instance=driver)
if formset.is_valid():
formset.save()
return redirect('app:final')
else:
formset = TourFormSet(instance=driver)
return render(request,'app/displayall.html',{ 'formset':formset })
或者,我尝试在模板中显示排序的时间表表,并有条件地显示表单集中的正确表单。紧随其后正确显示,但表单集停止以这种方式保存。保存此处的表单可能会破坏什么?我没有收到错误消息,但是没有保存数据,而是将我重定向到同一页面-表单本身这次从模板中消失了。
HTML
<td>
{% for form in formset %}
{% if form.instance.route == route %}
{{form.arrived}}
{% endif %}
{% endfor %}
</td>
我也尝试将can_order属性用于表单集,但无法理解如何以编程方式更改订单。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)