我有这个 ModelForm:
class Event(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(Event, self).__init__(*args, **kwargs)
##Here make some changes such as:
self.helper = FormHelper()
self.helper.form_method = 'POST'
##Many settings here which **i don't want to rewrite in 10 child classes**
class Meta:
model = Event
exclude = something...
widgets = some settings here also.
Run Code Online (Sandbox Code Playgroud)
而这个子 ModelForm:
class UpgradedEvent(Event):
def __init__(self, *args, **kwargs):
super(UpgradedEvent,self).__init__(*args,**kwargs)
class Meta(Event.Meta):
model = UpgradedEvent
Run Code Online (Sandbox Code Playgroud)
UpgradedEvent是Event 模型的孩子,但有一些额外的字段。如何将EventFORM 中的所有设置继承到UpgradedEventFORM 中?
运行上面的代码时,它会呈现Event表单。有没有办法只继承里面的设置__init__? …
假设以下df:
df = pd.DataFrame(
{
'col 1': ['A', 'A', 'B', 'B', 'C'],
'col 2': ['c2', 'd2', 'e2', 'f2', 'g2'],
'col 3': ['c3', 'd3', 'e3', 'f3', 'g3'],
'col 4': ['c4', 'd4', 'e4', 'f4', 'g4'],
}
)
Run Code Online (Sandbox Code Playgroud)
期望的输出是:
col 1 col 2 col 3
A c2;d2 c3;d3
B e2;f2 e3;f3
C g2 g3
Run Code Online (Sandbox Code Playgroud)
我通过以下方式成功完成了这项工作:
df = df.groupby('col 1').transform( lambda x: ';'.join(x)).drop_duplicates()
Run Code Online (Sandbox Code Playgroud)
问题是这种方法不能保留我真正需要的第1列.我无法apply工作.我试过这样但是它似乎没有用.groupby.
apply(lambda x: '*'.join(x.dropna().values.tolist()), axis=1)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用react-select, https://react-select.com/,并且options道具的强制格式似乎是{value:something, label:something}.
我有一个包含其他键、值对的对象列表,我的问题是是否有任何解决方法,not having to modify the array因为如果我修改它,这意味着select component将不会返回初始数组的对象,因此我将不得不再次映射它们.
options = [
{name: 'opt1', descr:'descr1'},
{name: 'opt2', descr:'descr2'},
{name: 'opt3', descr:'descr3'},
]
Run Code Online (Sandbox Code Playgroud)
例如,Vue我可以选择key将用作的label。
视图:
:items="options.name"
Run Code Online (Sandbox Code Playgroud)
在反应中,我将不得不执行以下操作:
this.new_options = []
this.options.forEach(element => {
this.new_options.push({
value : element.name,
label : element.name,
})
})
Run Code Online (Sandbox Code Playgroud)
在选择中:
<Select
name="selectedWires"
//closeMenuOnSelect={false}
components={makeAnimated()}
onChange={this.handleSelectChange('selectedWires')}
options={this.new_options}
isMulti
/>
Run Code Online (Sandbox Code Playgroud) 我有一个多对多字段,结果CheckboxSelectMultiple没有保存在数据库中,我不明白为什么。这一定很简单,但是......
这是代码:
模型.py
class Person(models.Model):
last_name = models.CharField(max_length = 50)
first_name = models.CharField(max_length = 50)
def __str__(self):
return self.last_name +" "+self.first_name
class Event(models.Model):
owner = models.ForeignKey(User, on_delete=models.SET_NULL, null = True)
person = models.ManyToManyField(Person)
Run Code Online (Sandbox Code Playgroud)
表格.py
class EventForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.user = kwargs.get('user',None)
#self.user = kwargs.pop('user',None)
super(EventForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_method = 'POST'
#self.helper.form_action = reverse_lazy('simpleuser')
self.helper.add_input(Submit('submit', 'Submit', css_class='btn-success'))
class Meta:
model = Event
fields = ['person']
widgets ={
'person': forms.CheckboxSelectMultiple,
}
Run Code Online (Sandbox Code Playgroud)
视图.py
def uploadevent(request):
if …Run Code Online (Sandbox Code Playgroud) django ×2
django-forms ×2
python ×2
dataframe ×1
inheritance ×1
javascript ×1
pandas ×1
reactjs ×1