如何解决DetailView中的多个独立表单
我有这些简化的模型。一个订单可以有多个OrderItems。 OrderItems的状态为“ A”,“ B”或“ C”。
ex <- tibble(id = c(1,1,2,2),status1 = c(3,3,5,7,7),status2 = c(3,7))
ex
myfunc <- function(df,id,var,val) {
df <- df %>%
group_by(id) %>%
mutate({{var}} := case_when(any({{var}} == val) ~ val,TRUE ~ {{var}})) %>%
ungroup() %>%
select({{var}})
return(df)
}
myfunc(ex,status1,1)
myfunc2 <- function(df,val) {
map_dfc(var,~myfunc(df,!!sym(.x),val)) %>%
add_column(id = df$id,.before = 1)
}
myfunc2(ex,c("status1","status2"),1)
# this works
for (i in c(1,7)) {
ex <- myfunc2(ex,i)
}
# this does not work
c(1,7) %>%
map_dfc(function(x) {ex <- myfunc2(ex,x)})
# original data
# A tibble: 7 x 3
id status1 status2
<dbl> <dbl> <dbl>
1 1 3 3
2 1 3 3
3 1 5 3
4 1 7 7
5 2 1 7
6 2 5 5
7 2 7 7
# Data after executing the for-loop
# A tibble: 7 x 3
id status1 status2
<dbl> <dbl> <dbl>
1 1 5 3
2 1 5 3
3 1 5 3
4 1 5 3
5 2 1 5
6 2 1 5
7 2 1 5
当前,我使用一个DetailView,它显示一个Order并遍历OrderItems。每个OrderItem都有一个指向UpdateView的链接,以更新状态:
views.py
class OrderItem(models.Model):
STATUS_CHOICES = (
("A","A"),("B","B"),("C","C"),)
name = CharField(max_length=100)
status = models.CharField(choices=STATUS_CHOICES,blank=False,default="A",max_length=1)
def __str__(self):
return self.name
class Order(models.Model):
items = models.ManyToManyField(OrderItem)
def __str__(self):
return self.pk
模板
class DetailOrder(DetailView):
model = Order
现在,我的问题是:对于每个订单项,我将如何处理一个独立的表单,以便直接在DetailView中更新状态,而不是直接链接到UpdateView。那有可能吗? 这样的东西,只是为了说明这个想法:
{% for orderitem in object.items.all %}
{{orderitem}}
<a href={% url 'some-updateview' orderitem.pk %}>Update Status</a>
{% endfor %}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。