问题描述
我有这些简化的模型。一个订单可以有多个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 (将#修改为@)