我正在创建一系列表单,通过 Django 的表单向导处理,但是,表单由许多下拉框组成,其内容取决于当前用户,因此,我需要将 User 作为关键字参数传递。
我目前所拥有的是:
class ViewDataWizard(SessionWizardView):
template_name="wizards/data/view_data.html"
def done(self, form_list,**kwargs):
form_data = process_form_data(form_list)
return render_to_response('wizards/data/view_data_done.html',{'form_data':form_data})
Run Code Online (Sandbox Code Playgroud)
但是,我正在寻求生产这个:
class ViewDataWizard(SessionWizardView):
template_name="wizards/data/view_data.html"
def get_form_kwargs(self, step):
if step == 0:
return {'user':<USEROBJECT>}
else:
return {}
def done(self, form_list,**kwargs):
form_data = process_form_data(form_list)
return render_to_response('wizards/data/view_data_done.html',{'form_data':form_data})
Run Code Online (Sandbox Code Playgroud)
在上面的第二个示例中,我需要用当前用户替换 USEROBJECT,以生成一系列表单。
我错过了一些非常明显的东西吗?传统上我会从request.user给定的视图中获取用户,但是,这在表单向导过程中似乎难以捉摸......
我data.frame喜欢这样的:
n = 50
df = data.frame(group=sample(1:as.integer(n/2),n,replace=T),
x = runif(n),
y = runif(n),
z = runif(n))
df = df[with(df,order(group)),]
Run Code Online (Sandbox Code Playgroud)
我需要做什么,对每个独特的价值group,是制作部分,即其中新列产生xend,yend并且zend,它们是x,y,z该组中的前一个点的值.对于组中的最后一个值,结束将作为组中的第一个点.
我可以通过以下方式执行此操作:
res = ddply(df,"group",function(d){
ixc = c("x","y","z")
dfE = d[,ixc]
dfE = rbind(dfE[nrow(dfE),],dfE[1:(nrow(dfE)-1),])
colnames(dfE) = paste0(ixc,"end")
cbind(d,dfE)
})
print(head(res))
Run Code Online (Sandbox Code Playgroud)
当它n很小时,这是微不足道的,然而,当n变大时,执行上述操作的时间变得非常重要,是否有更快的方法来执行此操作,也许使用data.table?
有人可以告诉我以下方法在翻译方面是否有问题吗?
我担心冗长的名称在数据库迁移时变得固定。
模型.py
from django.utils.translation import gettext as _
class UserClient(models.Model):
user = models.OneToOneField(User,related_name='profile_client')
phone_cell = PhoneNumberField(verbose_name=_(u'Phone (Cell)'),null=True,blank=False)
phone_home = PhoneNumberField(verbose_name_(u'Phone (Home)'),null=True,blank=True)
Run Code Online (Sandbox Code Playgroud)
如果以上有问题,实施以下是否更好?
表格.py
class ClientForm(forms.ModelForm):
def __init__(self,*args,**kwargs):
super(ClientForm,self).__init__(*args,**kwargs)
self.fields['phone_cell'].label = _(u'Phone (Cell)')
self.fields['phone_home'].label = _(u'Phone (Home)')
Run Code Online (Sandbox Code Playgroud) 在R6中,如何在不创建生成器对象实例的情况下获得类继承的完整列表?
考虑以下:
A = R6::R6Class("Base",NULL)
B = R6::R6Class("Top",inherit = A)
class(B) #Returns 'R6ClassGenerator'
B$classname #Returns 'Top'
Run Code Online (Sandbox Code Playgroud)
我想要的是 c('Top','Base','R6')
换句话说,否则会返回什么 class(B$new())
在现实世界中,我有一组复杂的继承,而且初始化程序有很多参数,有些没有默认值,因此我试图避免实例化新对象以获得此信息。
在armadillo矩阵实例上调用malloc的惯例是什么.
如果我想为100 x 100矩阵预先分配内存,这是否正确?
fmat* squareMat = (fmat*)malloc(sizeof(fmat(100,100)));
Run Code Online (Sandbox Code Playgroud) 我试图将颜色变量映射到geom_hline,但似乎不像其他几何一样工作.在每种情况下,这些都不会产生固定的黑线.
ggplot(data.frame(x=0,y=0,series="ABC"),aes(x,y,color=series))) +
geom_point() +
geom_hline(yintercept=0,show.legend = TRUE)
ggplot(data.frame(x=0,y=0),aes(x,y)) +
geom_point() +
geom_hline(yintercept=0,aes(color="ABC"),show.legend = TRUE)
Run Code Online (Sandbox Code Playgroud)
这是一个错误,还是有一些我缺少的语法?
有人可以向我解释为什么以下给我一个错误,以及如何解决.
编译错误是:
error: expected primary-expression before ‘.’ token
Run Code Online (Sandbox Code Playgroud)
简化的类和方法:
class test{
private:
int data;
public:
test() : data(1){}
test(const test& copy):data(copy.data){} //copy constructor
int getData(){
return data;
}
};
Run Code Online (Sandbox Code Playgroud)
这个方法不会像这样编译:
int getDataFromClass(const test& src){
return test.getData();
}
Run Code Online (Sandbox Code Playgroud)
但它确实如此
int getDataFromClass(const test& src){
test t = test(src);
return t.getData();
}
Run Code Online (Sandbox Code Playgroud)
第二种方法违背了通过引用传递数据的目的,因此是不希望的.
我希望能够通过引用传递一个类作为const,并且能够使用一些getter方法而无需创建本地副本.
r ×3
c++ ×2
django ×2
armadillo ×1
class ×1
data.table ×1
formwizard ×1
geom-hline ×1
ggplot2 ×1
malloc ×1
plyr ×1
r6 ×1
translation ×1